c - 使用 gnuC 进行预处理时如何删除 __extension__

标签 c oracle gnu oracle-pro-c

我需要使用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/

相关文章:

c - 使用 pte_map_offset 映射页表

C 崩溃中的检查控制台游戏

c - C 中的左移运算符给出奇怪的结果

java - 使用准备好的语句进行更新 : ORA-00933 error

gcc - 将 gcc 库 .data 放在特定部分?

c - GCC C 并将整数传递给 PostgreSQL

oracle - 如何使用Oracle Apex处理版本控制

oracle - 在 oracle 数据库中搜索文本中的字符,如 'a' 以匹配以下字符 : 'a' , 'à' 、 'â' 和 'ä'

python - 如何在 Windows 上安装 gnu gettext (>0.15)?所以我可以在 Django 中生成 .po/.mo 文件

linux - Cygwin 的 chrpath?