开发平台(Platform): (Ex: Win10, Linux, ...)
windows 10
编译器(Ex: GCC, clang, VC++...)+目标环境(跟开发平台不同的话需列出)
gcc 4.4.4
额外使用到的函数库(Library Used): (Ex: OpenGL, ...)
none
问题(Question):
我需要把一些变量放到section里
__attribute__((section(.data.james.foo1))) int var1;
__attribute__((section(.data.james.foo2))) int var2;
主要是foo1, foo2那边会改
因此我想要做个marco,做到这样
MY_SECTION(foo1) int val1;
MY_SECTION(foo2) int val2;
试着写了
#define MY_SECTION(name) __attribute__((section(.data.james.##name)))
不过无法通过编译
想知道要怎么修改,才能正确的达到我的目的
另外C语言的pre-processor有没有比较好的文件 orz
作者:
LPH66 (-6.2598534e+18f)
2017-05-04 20:15:00提一件事, 无法编译有很多种, 贴个错误讯息上来吧说不定根本就不是 preprocessor 没弄好而是其他问题等等, 要加引号的话那可能需要字串化的 #你那样出来的东西可能会在 ".data.james.name"用个 objdump 确定一下东西对不对吧如果确实需要的话, 写法是 section(".data.james." #name)