Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php扩展代码必须是c89样式_C_C99_C89 - Fatal编程技术网

php扩展代码必须是c89样式

php扩展代码必须是c89样式,c,c99,c89,C,C99,C89,我写了一个php扩展:,它工作得很好,我想把这个扩展提交给 但是他们说我的代码是C99风格的,PHP除了C89风格之外。我读了一些关于和的东西 并找出一些区别: stdbool.h inlinevs\uuuuuu inline\uuuuuu 我认为这两个文件中存在一些问题: 我修改了一些代码,并使用-std=gnu89对它们进行了测试。但我不确定是否还有一些问题 我的问题是: 如何测试我的代码是否为c89样式 如果有人能指出我代码中的问题,那就太好了 它不会对C89以外的所有功能发

我写了一个php扩展:,它工作得很好,我想把这个扩展提交给

但是他们说我的代码是C99风格的,PHP除了C89风格之外。我读了一些关于和的东西

并找出一些区别:

  • stdbool.h
  • inline
    vs
    \uuuuuu inline\uuuuuu
我认为这两个文件中存在一些问题:

我修改了一些代码,并使用
-std=gnu89
对它们进行了测试。但我不确定是否还有一些问题

我的问题是:

  • 如何测试我的代码是否为c89样式
  • 如果有人能指出我代码中的问题,那就太好了

它不会对C89以外的所有功能发出警告,但是

gcc -Wall -pedantic -std=c89 ...

这是一个很好的起点。

它不会警告C89中没有的所有功能,但是

gcc -Wall -pedantic -std=c89 ...

是一个很好的起点。

不确定,但这个问题可能更适合codereview.com。C89和C99之间最大的区别可能是,在C89中,所有变量声明都必须位于封闭范围的顶部,其他任何地方都是不允许的。在
bin\u pack.c
中,您似乎仍有许多违反此规则的行为。另一件事,您不应该创建以
\uu
开头的标识符-这是为编译器保留的特权。不是
内联
vs
\uu内联,而是
内联
vs什么都没有。@R。。是的,你说得对。但是我不明白为什么gcc支持ISO c的
\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
。我读到:
如果您要编写包含在ISO C程序中的头文件,请在@AndrewMedico中编写uu inline而不是inline
,谢谢您的建议。不确定,但是,这个问题可能更适合codereview.com。C89和C99之间最大的区别可能是,在C89中,所有变量声明都必须位于封闭范围的顶部,其他任何地方都是不允许的。在
bin\u pack.c
中,您似乎仍有许多违反此规则的行为。另一件事,您不应该创建以
\uu
开头的标识符-这是为编译器保留的特权。不是
内联
vs
\uu内联,而是
内联
vs什么都没有。@R。。是的,你说得对。但是我不明白为什么gcc支持ISO c的
\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
。我读到:
如果您要编写包含在ISO C程序中的头文件,请在@AndrewMedico中编写uu inline uuu而不是inline
,谢谢您的建议。小迂腐:
-std=c89
/
-std=C++98
-ansi
的同义词,在对K&R v2(即C89/90)进行严格检查时,
-ansi
看起来更干净一些。
-ansi
用词不当,所以最好使用
-std=C89
,这意味着它看起来像什么。次要迂腐:
-std=C89
/
-std=c++98
-ansi
的同义词,当对K&R v2(即C89/90)进行严格检查时,
-ansi
看起来更干净一些。
-ansi
用词不当,所以最好使用
-std=C89
,这意味着它的外观。