_ANSI_ARGS_((void))是什么意思

siantduo 2010-06-01 03:10:22
在mpeg2dec.c中对函数原型声明用到了_ANSI_ARGS_,
/* private prototypes */
static int video_sequence _ANSI_ARGS_((int *framenum));
static int Decode_Bitstream _ANSI_ARGS_((void));
static int Headers _ANSI_ARGS_((void));
static void Initialize_Sequence _ANSI_ARGS_((void));
static void Initialize_Decoder _ANSI_ARGS_((void));
static void Deinitialize_Sequence _ANSI_ARGS_((void));
static void Process_Options _ANSI_ARGS_((int argc, char *argv[]));
如果将其删除或者删去前面与函数名称之间的空格就会出错,_ANSI_ARGS_到底有什么作用?
我是新手,请多多指教!
...全文
246 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
gaoxiangv1 2011-10-20
  • 打赏
  • 举报
回复
这个我也查了半天,那样写可以保证程序与各种编译器都能兼容,就是这个作用。
我现在也在看MPEG-2代码,准备在上面做实验,不知道你现在还弄着呢吗?有机会可以交流一下
ywlovem 2011-09-22
  • 打赏
  • 举报
回复
你去找_ANSI_ARGS_这个宏的定义,你会发现#define _ANSI_ARGS_(x) x其实没作用
它就等于 static void Process_Options((int argc, char *argv[]));
siantduo 2010-06-04
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 pengzhixi 的回复:]
http://www.mcs.anl.gov/~gropp/projects/software/sowing/bfort/node8.htm
[/Quote]
还是不懂~~
static void Process_Options _ANSI_ARGS_((int argc, char *argv[]));
如果将其删除或者删去前面与函数名称之间的空格就会出错,为什么不可以这样定义呢:
static void Process_Options((int argc, char *argv[]));
static void Process_Options _ANSI_ARGS_(int argc, char *argv[]);
siantduo 2010-06-02
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 taodm 的回复:]
楼主C语言基础了宏几乎完全没学过?
[/Quote]
惭愧啊,还是不懂~~正在学C,原来真的没看过类似“static int video_sequence _ANSI_ARGS_((int *framenum));”这样声明的函数,找了好几本C语言基础的教程,也没有找到啊,请您指条明路吧!
pengzhixi 2010-06-01
  • 打赏
  • 举报
回复
看拼写的意思表示函数里面所有的参数都是ascii码的吧
taodm 2010-06-01
  • 打赏
  • 举报
回复
楼主C语言基础了宏几乎完全没学过?

64,648

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧