遇到一个奇怪的问题,c语言的宏定义。。

永远对你好 发布于 2012/07/25 18:17
阅读 880
收藏 0

如果大家搞过socket编程,对select()这个函数一定熟悉。

我定义了一个函数:

static int add( )
{
    int ret = 0;//位置3
    FD_ZERO(&rdSet);
    int ret = 0;//位置2
    FD_ZERO(&expSet);
    int ret = 0;//位置1

}
//#define FD_ZERO(set) (((fd_set FAR *)(set))->fd_count=0)
//只有把ret定义的位置放在位置3的时候才能定义成功,其他位置都会出错
// error C2143: 语法错误 : 缺少“;”(在“类型”的前面)
//这是为什么???难道宏函数后面不能在定义变量了?求指导。。。

加载中
0
hyxj1220
hyxj1220
我的观点,,,同志 c语言的变量定义 是要放在函数的首行的,
0
mingshun
mingshun
试试编译的时候加-std=gnu99,C99开始才支持在代码中间定义变量
岛
正解 不明白 vs为什么不支持c99
0
永远对你好
永远对你好

引用来自“mingshun”的答案

试试编译的时候加-std=gnu99,C99开始才支持在代码中间定义变量
我用的是vs2005啊。。。c语言不支持中间定义变量啊。。看来我是太久没有用c了。。。
Lunar_Lin
Lunar_Lin
后缀是c的时候,VS使用C语法进行编译.
0
永远对你好
永远对你好

引用来自“hyxj1220”的答案

我的观点,,,同志 c语言的变量定义 是要放在函数的首行的,
不可以??我用c++习惯了。。
0
中山野鬼
中山野鬼
这代码写的。。。。。。哎。不说了。。
0
echor
echor
C语言  宏是什么,干什么用,搞清楚了,就知道了
0
永远对你好
永远对你好

引用来自“中山野鬼”的答案

这代码写的。。。。。。哎。不说了。。
求野鬼哥指点。。我用c++多了。c有点忘记了。。
0
永远对你好
永远对你好

引用来自“戊己杏黄旗”的答案

C语言  宏是什么,干什么用,搞清楚了,就知道了
了解宏可以解决我这个定义问题??
0
yandong
yandong
什么代码?! ret都定义了三次
0
永远对你好
永远对你好

引用来自“yandong”的答案

什么代码?! ret都定义了三次
大家可能误解了,我定义三个是三个位置的意思,三种情况,每种位置不同。。。
返回顶部
顶部