编译时功能执行

时间:2016-04-05 06:33:02

标签: c gcc compile-time

有没有办法在C中执行compile-time function execution?与GCC?我只是使用constexpr in C++看到了这个。

1 个答案:

答案 0 :(得分:2)

只要表达式中只涉及常量,它就会在编译时计算出来。 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;