C语言中变量定义的位置
来源:互联网 发布:知乎世界金融集团 编辑:程序博客网 时间:2024/04/29 04:35
C++中,变量定义可以在函数中的任意位置,比如函数中任意位置出现的For循环中:
for(int i = 0; i< len; i++) { /*do something;*/}
变量i就可以在使用到的地方才给定义;
然而在C语言中,变量的定义一定要在函数体的最开始处;否则在使用到变量的地方才定义,编译的时候会报不认识此变量,如下这个屏幕字段入口函数:
Fi_120015_01_CICUSENA(){ char acRegFlg[2]; GetStr("K_C00101",acRegFlg); Trim(acRegFlg); /*非记名卡跳过 */ if(acRegFlg[0]=='0') { return SKIP; } /*判断输入的姓名是否为拼音*/ char Name[71]; int len = 0; GetStr("CICUSENA",Name); /*取数组长度*/ /* len = (sizeof(Name)/sizeof(Name[0])); */ len = strlen(Name); for(int i = 0; i < len; i++) {if(!((Name[i]>'A' && Name[i]<'Z') || (Name[i]>'a' && Name[i]<'z'))) { v_warning(0,"请输入姓名对应的拼音"); return INVALID; } } return 0;}编译,然后就出现下面的错误:
[开发]/usr/AAAAA/src/cds/120015>msoe ->编译 120015.fe ...... 120015.c:"120015.ec", line 248: error: Syntax error before or at: int"120015.ec", line 250: error: undefined symbol: Name"120015.ec", line 253: error: undefined symbol: len"120015.ec", line 253: error: cannot dereference non-pointer type"120015.ec", line 254: error: Syntax error before or at: int"120015.ec", line 254: error: undefined symbol: i"120015.ec", line 254: error: Syntax error before or at: )"120015.ec", line 260: error: Syntax error before or at: return"120015.ec", line 260: warning: syntax violation: empty declaration120015.c:"120015.ec", line 248: error: Syntax error before or at: int"120015.ec", line 250: error: undefined symbol: Name"120015.ec", line 253: error: undefined symbol: len"120015.ec", line 253: error: cannot dereference non-pointer type"120015.ec", line 254: error: Syntax error before or at: int"120015.ec", line 254: error: undefined symbol: i"120015.ec", line 254: error: Syntax error before or at: )"120015.ec", line 260: error: Syntax error before or at: return"120015.ec", line 260: warning: syntax violation: empty declaration*** Error code 2 (bu21)mv: cannot access 120015.so: No such file or directory (error 2)当我们把所有的变量定义移动到函数体最上面,如下;然后进行编译,上面出现的问题就解决了:
Fi_120015_01_CICUSENA(){ char acRegFlg[2]; char Name[71]; int len = 0,i=0; GetStr("K_C00101",acRegFlg); Trim(acRegFlg); /*非记名卡跳过 */ if(acRegFlg[0]=='0') { return SKIP; } /*判断输入的姓名是否为拼音*/ GetStr("CICUSENA",Name); /*取数组长度*/ len = strlen(Name); for(i = 0; i < len; i++) { if(!((Name[i]>'A' && Name[i]<'Z') || (Name[i]>'a' && Name[i]<'z'))) { v_warning(0,"请输入姓名对应的拼音"); return INVALID; } } return 0;}
- C语言中变量定义的位置
- C语言中变量定义的位置
- gcc C语言中变量定义的位置问题
- C语言和C++语言对于代码块中定义变量位置的区别
- C语言中变量定义的位置(C89和C99的区别)
- c语言中变量的存储位置
- c语言定义变量的位置(By 紫贝殼)
- 39 C语言变量的定义位置以及初始值
- C语言中关于变量的定义
- C语言中变量的定义&声明
- C语言中变量的位置与程序优化
- C语言中变量的位置与程序优化
- C语言中变量的位置与程序优化
- C语言中变量存放位置分析
- C语言中变量和函数的声明与定义
- C语言中变量和函数的声明与定义
- 【疑问】c语言中变量的集中定义问题
- C语言中变量定义与声明的区别
- SILVERLIGHT组件备忘
- MyEclipse 更改发布路径
- 计算机网络基础05
- 享受
- 非阻塞的Python web框架tornado
- C语言中变量定义的位置
- 编译某一个ko模块make modules SUBDIRS=drivers/xxx/
- JCFXBL JSM基础功能实验
- cooledit2.1降噪方法
- 作茧自缚
- 关于struts2和javamail的配合使用
- 技巧:用 C 语言实现程序的多态性: C中只有两种类型int 和void *, 万能指针void *
- velocity语法
- 《结构——C#第八周》