0 c c++ compiler-errors compilation sizeof
如果 sizeof(struct ...) 不等于给定数字,如何获取 C 编译时#error?
问题来自编程课程,我想避免运行错误大小的二进制代码。
(众所周知,sizeof 运算符在 #if .. #endif 指令中不起作用。)
如果 sizeof(struct ...) 不等于给定数字,如何获取 C 编译时#error?
你不能,因为预处理器对类型的大小一无所知。
但是,您可以static_assert:
static_assert(sizeof(T) == N, "T must have size N")
Run Code Online (Sandbox Code Playgroud)
在 C 中,关键字是_Static_assert,也可以通过static_assert中的宏使用<assert.h>。
| 归档时间: |
|
| 查看次数: |
564 次 |
| 最近记录: |