题目内容

Typedef
15. Typedef 在C语言中频繁用以声明一个已
经存在的数据类型的同义字。也可以用预处理器做
类似的事。例如,思考一下下面的例子:
#define dPS struct s *
typedef struct s * tPS;
以上两种情况的意图都是要定义dPS 和tPS
作为一个指向结构s指针。哪种方法更好呢?(如
果有的话)为什么?
这是一个非常微妙的问题,任何人答对这个问
题(正当的原因)是应当被恭喜的。

查看答案
更多问题

以下代码有什么问题?
typedef vector IntArray;
IntArray array;
array.push_back(1 );
array.push_back(2 );
array.push_back(2 );
array.push_back(3 );
// 删除array数组中所有的2
for(IntArray::iterator itor=array.begin();
itor!=array.end(); ++itor )
{
if(2 == *itor ) array.erase(itor );
}

用预处理指令#define 声明一个常数,用以
表明1 年中有多少秒(忽略闰年问题)

以下代码有什么问题?
cout << (true?1:"1") << endl;

下面代码有什么问题?
#define MAX_SRM 256
DSN get_SRM_no()
{
static int SRM_no; //是不是这里没赋初值?
int I;
for(I=0;I<MAX_SRM;I++,SRM_no++)
{
SRM_no %= MAX_SRM;
if(MY_SRM.state==IDLE)
{
break;
}
}
if(I>=MAX_SRM)
return (NULL_SRM);
else
return SRM_no;
}

答案查题题库