时常使用typedef,但是它的作用域是什么样的.
今天脑中突然冒出这个问题,发现自己不能第一时间反应过来。于是写了如下代码,验证下。
#include <stdio.h>
void fun()
{
typedef int ScreenSizeType;
printf("call fun\n");
}
int main()
{
fun();
ScreenSizeType size = 1;
printf("size:%d\n", size);
return 0;
}
编译报错:
error:unknown type name 'ScreenSizeType'
修改代码改成如下形式,均可以成功编译成功:
#include <stdio.h>
typedef int ScreenSizeType;
void fun()
{
printf("call fun\n");
}
int main()
{
fun();
ScreenSizeType size = 1;
printf("size:%d\n", size);
return 0;
}
或者
#include <stdio.h>
void fun()
{
printf("call fun\n");
}
int main()
{
typedef int ScreenSizeType;
fun();
ScreenSizeType size = 1;
printf("size:%d\n", size);
return 0;
}
结论:
typedef和变量一样,也有相似的作用域。