什么是ISO C标准中__attribute__
的替代? 我想移植独立于编译器的软件。什么是ISO C标准中__attribute__的替换?
3
A
回答
4
没有一个。
一个解决方案是抽象宏后面的属性。例如:
#ifdef __GNUC__
#define UNUSED __attribute((unused))__
#else
#define UNUSED
#endif
...
void function(void) UNUSED;
0
这个gcc扩展提供的各种设施没有一般替代品。大多数其他不兼容gcc的编译器使用#pragma
来实现类似的目标。自C99以来,C有_Pragma
运算符,它允许您在代码中间散布杂注(不仅在适当的行上),并且用宏编写杂注的内容。但是,您仍然需要对单个功能进行特定“翻译”,以便将其编译为目标编译器的相应编译语法。
相关问题
- 1. 根据C++ ISO标准,多通保证是什么?
- 2. 什么是__attribute__ vector_size?
- 3. C++标准库是否可以替换?
- 4. C++库替换标准cstdio
- 5. ISO C++标准草案
- 6. ISO标准命名是否有标准?
- 7. 目标C中的Xamarin Studio的类HttpWebRequest替换是什么?
- 8. 在Visual Studio C++中v4sf和__attribute__的等价物是什么?
- 9. 什么是目标C的“stringWithContentsOfURL”替代?
- 10. 替换匹配的标准
- 11. 什么是C#“格式化”标准?
- 12. 迂腐ISO标准
- 13. 替换标准C++分配器?
- 14. QByteArray的标准替换
- 15. 什么是AWSLambdaClient的替换
- 16. 替换Visual Studio标准库
- 17. wcslen是ISO/IEC 14882:2003 C++标准库的一部分吗?
- 18. 是否有符合ANSI/ISO标准的Turbo C++?
- 19. 什么是java中的标准对象?
- 20. 标准输入中的EOF是什么?
- 21. 货币符号是否有iso标准?
- 22. C标准中命名的宏的每个部分是什么?
- 23. 什么是ISO标准目录01.140.10使用的基本拉丁文字符集?
- 24. xcode中.strings文件中的编译标记替换是什么?
- 25. Grails + MongoDB:什么是isNull标准的替代?
- 26. 什么是流星反标准化的替代方案?
- 27. 什么是swift 3中NSTimer.scheduledTimerWithTimeInterval()的替换?
- 28. Angular2中指令的替换是什么?
- 29. 什么是RealmSwift中的RLMCollection替换
- 30. 什么是R中的替换函数?
人们用'__attribute__'做的大多数事情都是非常错误和不可移植的(打包/对齐/等等),或者只是优化,当然这些优化当然是不必要的,并且可以简单地移除以使代码可移植。在前一种情况下,您需要解决更大的不可移植性问题;只是删除'__attribute__'是很容易的部分。 –