我需要使用Oracle pro*C来处理EXEC SQL
声明。不过,我想通过使用 gnuC 进行预处理来替换 SQL 部分中的一些宏。
问题是从版本 4 开始,gnuC 预处理添加了诸如 __extension__
之类的关键字。
pro*C 预处理器拒绝 __extension__
并显示以下消息:
Syntax error at line 16, column 15, file xxx.ppc:
Error at line 16, column 15 in file xxx.ppc
__extension__ typedef unsigned long long int __u_quad_t;
..............1
PCC-S-02201, Encountered the symbol "typedef" when expecting one of the followin
g:
; , = ( [
The symbol ";" was substituted for "typedef" to continue.
如何让 gnuC 不产生这些关键字?
谢谢
最佳答案
您也许可以使用 C 预处理器删除 __extension__
。将以下内容放在包含 __extension__
的 header 的 #include
之前:
#define __extension__
然后将 __extension__
转换为稀薄的空气。
但我不确定它是否有效;我不知道 pro*C 发生的事情的顺序(更具体地说,pro*C 和 CPP 如何一起工作)。
此外,删除它可能会导致其他问题。这仅仅意味着您可能需要执行其他 CPP 技巧才能使其全部正常工作。
关于c - 使用 gnuC 进行预处理时如何删除 __extension__,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22325394/