gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 23:28:01 24 4
gpt4 key购买 nike

我需要使用 Oracle pro*C 来处理 EXEC SQL 声明。但是,我在 SQL 部分中有一些宏,我想通过使用 gnuC 进行预处理来替换它们。

问题是从版本 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com