纯C源码,只允许修改字段,只能看看有没有什么编译器扩展可供利用。
sizeof或类似操作是编译期的事情,预处理阶段没办法搞。
如果允许人工计算或者少量改代码,那可以:
- 用宏之类,可以跨编译器
- GCC之类的有{[A ... B] = N}这种初值扩展
允许使用链接脚本之类的话,那么
1,结构体单门放一个section
2,linker脚本,比如binutils的ld,section有fill字段,未用部分可填充指定数据
【 在 feiy (null) 的大作中提到: 】
: 对变量的赋值上,如果实现全数值赋值?
: 比如,定义了一个数据结构
: typedef union {
: ...................
--
修改:zkr FROM 123.118.98.*
FROM 123.118.98.*