有没有办法启用(int i = 0; ...在gcc中...而不必打开c99模式

Joh*_*den 7 c gcc for-loop c99 pragma

我有一个非常大的程序,在没有警告的情况下编译gcc.

如果我在命令行上打开c99模式--std = c99,它会发出大量警告和错误.

但我喜欢这个成语 for(int i=0; i<20; i++){ code }

代替 {int i; for (i=0; i<20; i++){ code }}

有没有办法告诉gcc允许这个而且只有这个?

或者,有没有办法在我正在使用的特定功能中启用c99模式?就像是

#pragma c99 on 

for(int i=0; i<99; i++)
{
    code
}

#pragma c99 off
Run Code Online (Sandbox Code Playgroud)

caf*_*caf 7

警告和错误可能是因为-std=c99请求符合标准的C99,这意味着没有定义污染C99名称空间的许多特定于平台的函数.

相反,你应该尝试--std=gnu99,这是C99相当于默认模式gnu89.