c - 如何针对一个值测试多个变量并根据 C 中的结果更改它们?
问题描述
需要针对相同的值(var1 或 var2 或 var3 > 255)测试三个变量。如果其中任何一个比较为真,则需要将相应变量的值设置为 255。这是我想出的:
if (r > 255)
r = 255;
if (g > 255)
g = 255;
if (b > 255)
b = 255;
和
r += (r > 255) * (255 - r);
g += (g > 255) * (255 - g);
b += (b > 255) * (255 - b);
由于这些非常相似,所以我想知道是否有办法以某种方式缩短此代码。
解决方案
由于这些非常相似,所以我想知道是否有办法以某种方式缩短此代码。
您可以通过使用宏以某种方式缩短此代码:
#define LIMIT(v) if (v > 255) v = 255
LIMIT(r);
LIMIT(g);
LIMIT(b);
推荐阅读
- c++ - QT5 平滑更改整数文本
- perl - perforce:perforce 中集成的来源
- c# - Code First: EntityFramework - Migration Error on One-To-Many relation
- ios - 错误的 Spotify 曲目
- javascript - 字符串中的奇怪字符
- c++ - 可以从文本文件复制并粘贴到打开word程序的C++
- c++ - 在 Visual C++ 中与 Stockfish(外部可执行文件)通信的最佳方式
- kubernetes - Connection 拒绝从 pod 到服务的通信
- java - 如何使用 Omnifaces 1.14.1 修复 javax.xml.xpath.XPathFactoryConfigurationException
- javascript - 生产错误但不在预生产中