小编Car*_*ere的帖子

我应该在函数定义中还是在声明和定义中放置参数存储类说明符?

我正在努力将一些旧的K&R代码移植到ANSI C,所以我正在编写缺少的函数原型声明.很多函数定义都有寄存器存储类的参数,但是我不确定函数原型中是否可以省略寄存器存储类说明符?

有和没有寄存器存储类特定声明,代码编译正确(我尝试了GCC,VC++和Watcom C).我在ISO/ANSI C89标准中找不到任何关于正确方法的信息 - 如果我只是将register关键字放在函数定义中就可以了吗?

int add(register int x, register int y); 

int add(register int x, register int y)
{
  return x+y;
}
Run Code Online (Sandbox Code Playgroud)

这也正确构建:

int add(int x, int y);

int add(register int x, register int y)
{
   return x+y;
}
Run Code Online (Sandbox Code Playgroud)

我想确保根据标准真正考虑寄存器存储说明符(我的目标是使用非常旧的编译器进行编译,其中此存储类说明符很重要).两者都好,这只是一个编码风格的问题,或不是?

c declaration definition c89

14
推荐指数
3
解决办法
590
查看次数

标签 统计

c ×1

c89 ×1

declaration ×1

definition ×1