楼上明显是被新人夸了,内心窃喜中。 话说,我也很膜拜楼上,是个专业人士。
如果还希望编译器输出出错的文件和行号,上面的宏也可以做到,作些许修改就行,这个留给楼主做趣味练习吧,呵呵。
static_assert 就是干这事儿的。编译器不支持的话,可以用类似的模板技术,根据 int64_t 的大小生成编译错误。
#include <stdint.h> 里有可移植的定义,不需要你care。
[quote=引用 27 楼 supermegaboy 的回复:] 如果还希望编译器输出出错的文件和行号,上面的宏也可以做到,作些许修改就行,这个留给楼主做趣味练习吧,呵呵。
[quote=引用 5 楼 ak47_wz 的回复:] [quote=引用 4 楼 zhctj159 的回复:] 什么叫死出去,,这词用得、、 if(sizeof(int64_t)!=64)exit(0);
[quote=引用 4 楼 zhctj159 的回复:] 什么叫死出去,,这词用得、、 if(sizeof(int64_t)!=64)exit(0);
我想在编译时确定int64_t的确是64位,否则就死出去。如何做到这点?好像可以用模板?
[quote=引用 35 楼 supermegaboy 的回复:] [quote=引用 30 楼 stereoMatching 的回复:] 引用因为一个字节的二进制宽度不一定是8位,还需要乘上字节的位数 学习了,能不能请你举个例子?什么情况下二进制宽度不一定是8位?
因为一个字节的二进制宽度不一定是8位,还需要乘上字节的位数
#if !defined(_WIN64) #error ... #endif 这样就编译不过去了。
#if !defined(_WIN64) #error ... #endif
64,642
社区成员
250,580
社区内容
加载中
试试用AI创作助手写篇文章吧