【发布时间】:2011-09-19 14:45:15
【问题描述】:
我正在使用一个源代码库,但我不清楚指针类型定义的规则:使用 _PTR_ 宏而不是 * .所以,所有的函数原型和 typedef 看起来像:
extern FILE_PTR _io_fopen(const char _PTR_, const char _PTR_);
我想知道这背后的原因是什么,因为对我来说这似乎太过分了。
编辑
顺便说一下,我发现了双重间接:
_io_strtod(char _PTR_, char _PTR_ _PTR_);
【问题讨论】:
-
好问题。我真的很想知道是否有人对此有一个好的答案。你也看到
__PTR__ __PTR__用于双重间接吗? :S -
大声笑 ...也许提出这个问题的程序员有视力问题,并且难以识别典型源文件中所有其他符号中间的小星号。
-
@Michael Mior Ha-ha - 有:)
-
呃。我想不出这样做的理性理由。他们是否也使用宏进行取消引用?例如,他们真的写了
x = _PTR_p之类的东西吗?他们会写int (_PTR_x)[N]或char _PTR_(_PTR_foo)(void)之类的声明吗?如果不是,那么我提交的宏是 worthless 并且应该被排除在外。如果您不能处理指针语法,请不要在 C 中工作。 -
看起来只有吃蛋饼的 Pascal 程序员才能想出的东西..
标签: c pointers design-consideration