关于c语言变量定义的注意事项
来源:互联网 发布:算法竞赛入门经典 答案 编辑:程序博客网 时间:2024/05/01 06:15
在标准C中规定变量定义必须放在所有的执行语句之前!一旦在运行语句之间再有定义的话,会报错误!
见以下式例:
#include <stdio.h>
#include <stdlib.h>
int main()
{
char char1='A';
printf("大写字符=%c的ASCII码=%d/n",char1,char1);
char char2=char1+32;
printf("小写字符=%c的ASCII码=%d/n",char2,char2);
system("pause");
return 0;
}
把上述代码放到命名为test.c的文件中(VC 6.0调用C编译器),编译。出现编译错误:
d:/project/c++/test/1.c(12) : error C2143: syntax error : missing ';' before 'type'
d:/project/c++/test/1.c(14) : error C2065: 'char2' : undeclared identifier
这就是因为在上述代码中char char2=char1+32;的定义放在了执行语句printf("大写字符=%c的ASCII码=%d/n",char1,char1);的后面导致的;一旦把上述同样的语句放到了.cpp文件中(VC 6.0调用C++编译器),编译没有问题,这是因为编译器认为上述代码是C++语法格式的,在C++中没有严格要求变量定义一定要放在执行语句之前。
如果在.c文件中执行上述代码的话,可以在编译器设置用C++编译!
在.c文件中(C)正确的代码为:
#include <stdio.h>
#include <stdlib.h>
int main()
{
char char1='A';
char char2=char1+32;
printf("大写字符=%c的ASCII码=%d/n",char1,char1);
/*char char2=char1+32; */ /*在C中变量定义必须放在所有的执行语句之前!*/
printf("小写字符=%c的ASCII码=%d/n",char2,char2);
system("pause");
return 0;
}
这其实是C 标准的问题 ,C89 不允许变量声明和执行语句混合写 ,C99允许 ,C++ 也允许,gcc 有很多扩展的功能。
- 关于c语言变量定义的注意事项
- C语言中关于变量的定义
- 关于c语言定义变量
- 关于Interface中定义变量的注意事项
- 变量定义的注意事项
- c语言变量定义
- C语言:变量定义
- GCC 和标准C :关于 C语言变量定义
- C语言中变量定义的位置
- C 语言变量的声明和定义
- c语言变量的声明和定义
- C语言中变量定义的位置
- C语言中变量的定义&声明
- C语言宏定义注意事项
- 定义属性变量的注意事项
- 关于“在C语言中只能在函数前面定义变量”的问题
- C语言面试题(13)——关于变量的定义
- 关于C语言BSS段问题以及变量定义的解答
- JSP自定义标签之二:基本步聚
- leanning
- Lpad和Rpad
- Linux 下ftp自动登录
- The view of the C++ language
- 关于c语言变量定义的注意事项
- 文档中多余的分页符的删除
- 全面理解Linux配置文件
- BOOL和bool的区别
- RHEL5之KICKSTART批量网络无人职守安装
- 在研究图象对比的东东
- 创业经历
- 海外组09夏令营java第三次培训
- OSPF详解(一):ospf与rip的区别