我有以下一段代码,
方案 1
/* get count of elements in an array */
#define COUNT(x) sizeof(x)/sizeof(x[0])
struct Data data[] = {/* some data goes here */};
int count = COUNT(data);
方案 2
#define TOTAL 32
#define EACH 4
int count = (TOTAL/EACH)
我知道宏在预处理期间被解析,并且 sizeof 是编译时运算符,但是除法怎么样:它在编译期间得到优化吗?
是否有任何工具可以查看编译器所做的优化?