C语言里有没有见过这么写的?
void func()int a;
{
...
}
在CCS里编译没问题,
从来没见过,请教牛人,这么定义跟直接在最开始定义有什么区别吗?为什么不报错? 真的是这么写的?那CCS还真不是一般的强,连参数列表不一致都可以直接无视……
要写也是这样写吧:
void func(a) /* 注意这里的形参a,不能省去的!CCS没用过,不知道是不是真的可以省去。 */
int a;
{
...
}
这种写法在调用参数不一致时不会报错,比如调用func(1.1f)也不报错的,因为没有类型信息。
不过还是建议这样写,可以让编译器在编译时检查参数的类型匹配:
void func(int a)
{
...
}
上一种写法在比较老的C语言程序中是标准用法,现在基本已经废弃了,MISRA C规范已经禁止了第一种写法。 我错了,是LS那样的 膜拜神人,我辈从来没见过 好像老谭的书有介绍过这种写法吧
页:
[1]