编译时函数执行
Compile-Time Function Execution
有没有办法执行compile-time function execution in C? With GCC? I've only seen this available using constexpr in C++.
只要表达式中只涉及常量,就会在编译时进行计算。 C++ constexpr
主要是一种不涉及宏的类型安全方式。在 C 中,只有宏。例如:
#define CIRCLE_AREA(r) (int32_t)( (double)(r) * (double)(r) * M_PI )
int32_t area = CIRCLE_AREA(5);
在编译时执行所有计算,因此相当于这样写:
int32_t area = 78;
有没有办法执行compile-time function execution in C? With GCC? I've only seen this available using constexpr in C++.
只要表达式中只涉及常量,就会在编译时进行计算。 C++ constexpr
主要是一种不涉及宏的类型安全方式。在 C 中,只有宏。例如:
#define CIRCLE_AREA(r) (int32_t)( (double)(r) * (double)(r) * M_PI )
int32_t area = CIRCLE_AREA(5);
在编译时执行所有计算,因此相当于这样写:
int32_t area = 78;