本人用vs2008写C语言程序

新建cpp文件,但是强行把文件名命名为.c。

但是编译时出了很奇怪的问题。

int main()
{
    printf("d\n")
    int endt = 0;
    scanf("%d",&endt);
    return 0;
}

报错:

1>f:\code\auguest_c\auguest_c\main.c(21) : error C2143: syntax error : missing ';' before 'type'
1>f:\code\auguest_c\auguest_c\main.c(22) : error C2065: 'endt' : undeclared identifier

最后发现,把endt的定义挪到最前面就可以了。

正确版本:

int main()
{
    int endt = 0;
    printf("d\n")
    scanf("%d",&endt);
    return 0;
}

问题根源:编译器问题——C89和C99

C89规定,在任何执行语句之前,在块的开头声明所有局部变量。

在C99以及C++中则没有这个限制,即在首次使用之前,可在块的任何位置都可以声明变量。

1.源文件保存为.c格式的话变量只能定义在最前,若保存为.cpp格式的话,变量定义较为灵活,不用在最前。

2.在C语言里,变量只能在函数的开头处声明和定义。在函数里要用到的变量必须要在开头处声明定义。声明定义的前面不能有任何其他非声明定义的语句。全局变量在函数体的外部声明定义。而C++里(.CPP文件是按C++标准编译的),只要在用到变量前对该变量进行声明定义就行了,位置不做特别要求。而C语言的就定了在一个模块里(函数、循环体等)先声明一切所需变量后才能进行相关操作的规定。

vs2008 C语言 变量定义在最前面相关推荐

  1. c语言变量定义位置区别,C语言中变量定义的位置(C89和C99的区别)

    C语言中变量定义的位置(C89和C99的区别) 在C++和JAVA中,按照语法,我们可以把变量定义在任何位置,所以很多人习惯了"哪里使用哪里定义"的这种做法,所以当用C语言进行编程 ...

  2. C语言变量的定义包括变量存储类型和变量的什么?

    C语言变量的定义包括变量存储类型和变量的名称.C语言定义变量的格式:"数据类型 变量名;","数据类型"表示想要存储什么类型的数据,"变量名" ...

  3. C语言变量定义和赋值

    定义变量的格式非常简单,如下所示: 数据类型  变量名; 首先要强调的一点是:最后的分号千万不要丢了.变量的定义是一个语句,我们说过,语句都是以分号结尾的. "数据类型"表示想要存 ...

  4. c语言if不能判断u8变量值,C语言变量名命规则.doc

    C语言变量名命名规则 一.程序风格:???????? 1.严格采用阶梯层次组织程序代码:???????? 各层次缩进的分格采用VC的缺省风格,即每层次缩进为4格,括号位于下一行.??? 要求相匹配的大 ...

  5. C语言变量的类型和存储位置

    *************************************************** 更多精彩,欢迎进入:http://shop115376623.taobao.com ****** ...

  6. c语言变量名用一个字母,C语言变量命名规则

    <C语言变量命名规则>由会员分享,可在线阅读,更多相关<C语言变量命名规则(6页珍藏版)>请在人人文库网上搜索. 1.1.严格采用阶梯层次组织程序代码:各层次缩进的分格采用VC ...

  7. (四)从零开始学习模糊控制——语言变量蕴含关系

    模糊控制系列文章 (一)模糊数学--基本概念 (二)模糊数学--模糊关系 (三)模糊数学--模糊决策 (四)模糊数学--语言变量&蕴含关系 (五)模糊数学--模糊推理 文章目录 模糊控制系列文 ...

  8. C语言变量定义与赋值

    编程环境:Visual Studio 2017; 电脑系统:WIN10 : 一.定义变量与初始化 一般编程中,考虑编程环境及C89.C99标准,稳妥的做法是:定义变量的同时进行初始化: 1.目的是j的 ...

  9. c语言常量与变量ppt,C语言 变量、常量与数据类型.ppt

    C语言 变量.常量与数据类型.ppt (25页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 14.9 积分 变量.常量与数据类型回顾C语言的基本字符集有那 ...

最新文章

  1. Understanding SOAP
  2. 使用Flutter一年后,这是我得到的经验
  3. AngularJS基本知识点
  4. Maven编译jar出现:无法确定 T 的类型参数的异常的原因和处理方案
  5. java 22 - 8 多线程之线程生命周期图解
  6. 如何用堆栈和循环结构代替递归调用--递归转换为非递归的10条军规
  7. JavaWeb黑马旅游网-学习笔记01【准备工作】
  8. ITK:遍历具有成形邻域的图像区域
  9. Webdynpro check error - check function in Workbench
  10. 工业项目,用MCU还是PLC?
  11. 南阳58--最小步数(BFS)
  12. latex插入图像、表格、其他latex脚本时的路径设置
  13. 2021-2022学期计划
  14. 金行健:你有没有思考过,特斯拉为什么先进?
  15. vc中控件字体的设置(转)
  16. 移动端微博 php源码,jQuery仿手机新浪微博聊天界面
  17. 状语从句不是简单句_简单句、并列句、复合句
  18. PID各自的作用究竟是什么?
  19. 跟上Java8 - 日期和时间实用技巧,转自知乎王爵nice
  20. 上海大学2020计算机考研专业,2019上海大学计算机专业考研参考科目

热门文章

  1. PAT 甲级 英语基础
  2. 2021年山东省安全员C证考试内容及山东省安全员C证新版试题
  3. HTML5+jSignature插件手写签名生成图片并转换成文件流实现功能
  4. IND-gyc-第一周
  5. 盘点 “互联网女皇” 看好的20家创新公司
  6. win7搭建局域网时间服务器
  7. 正点原子8266烧写MQTT固件
  8. 怎么拆分pdf文件为一张一张
  9. 鸿蒙开发者微信公众号,微信鸿蒙开发者公众号报名了
  10. 快速改变文件hash值的方法