({ int _ret; ret = (x) << 1; ret; }) int twice(int c) { return TWICE(c); }
在C语言里面,可以使用({aaa; bbb; ccc;})来实现宏定义带返回值;这里的返回值是最后一个;的值。 注意里面的()和{}都不能少,否则可能会破坏代码的语法结构,导致得不到正确的答案。 C语言中一些宏定义和常用的函数 typeof 关键字 如果你是 C++ 程序员,应该接触过 C++11 里的 decltype 操作符,它的作用是...
带返回值宏函数[C语言]#include #define compute(x, y, n)\ ({\ int sum_tmp = 0;\ for (int i = 0; i < n; ++i)\ sum_tmp += x[i] * y[i];\ sum_tmp;\ }) int dotProduct(int x[], int y[], int n) { int i, sum; sum = compute(x, y, n); ...