[英]why main P2((ac, av), int ac, char ** av) ?
最近,我正在阅读GSM音频编码的源代码。 这些代码写于1992年或以后。
有一些奇怪的代码,例如:
main P2((ac, av), int ac, char ** av)
void Gsm_Coder P8((S,s,LARc,Nc,bc,Mc,xmaxc,xMc)
这些代码是否使用旧方法? P2或P8的用途是什么?
这些宏使代码与在括号后列出类型的旧式编译器兼容。 例如, P2
可以扩展为
main(int ac, char **av)
要么
main(ac,av)
int ac;
char **av;
运行gcc -E
以查看预处理后的输出。
2
和8
是因为较旧的编译器中的预处理器宏不能具有可变数量的参数,因此每个参数计数都需要一个单独的宏。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.