前言:我是喜欢编程的一只菜鸟,在自学过程中,对遇到的一些问题和困惑,有时虽有一点体会感悟,但时间一长就会淡忘,很不利于知识的积累。因此,想通过博客园这个平台,一来记录自己的学习体会,二来便于向众多高手请教。

  最近学习C语言,主要使用C-Free进行编写。在学习过程中发现,书中提示C语言必须要遵循某种写法,但是奇怪的是,不按照这种写法却也能通过编译。

  如以下代码:

 #include <stdio.h>

 struct point /*定义结构体*/
{
int x;
int y;
}; int main(int argc, char *argv[])
{
struct point A;
A.x = ;
A.y = ;
printf("A点坐标为:[%d, %d]\n", A.x, A.y);
return ;
}

  按书中所讲:第11行必须写成struct point A,而不能写成 point A。但实际却能顺利通过编译,后来又用VC++ 6.0进行测试,仍然通过编译。因为是同时看两本书自学,两本书上都这样写,我相信书上的应该是正确的。经过多次尝试,发现是默认文件扩展名的问题。

  C-Free和VC++ 6.0是根据源文件扩展名来编译的。如果源文件扩展名为.c,则视为C语言源文件进行编译;如果源文件扩展名为.cpp,则视为C++源文件进行编译。C-Free和VC++ 6.0默认的源文件扩展名都是.cpp,编译器视为C++源文件进行编译,而C++允许在声明结构体时省略关键字struct,所以就能顺利通过编译。

  如果保存时将源文件扩展名改为.c,或者修改默认扩展名,就会视为C语言源文件进行编译。因C语言不允许省略关键字struct,故编译时会提示错误。所以,在学习C语言时,应将IDE的默认扩展名设置为.c,或者先保存为.c文件再进行编译,以避免造成不必要的困惑。

利用IDE编写C语言程序的一点注意事项的更多相关文章

  1. Ubuntu下终端Vim编写C语言程序 AAAAA

    我是开虚拟机下的Ubuntu,装双系统又卸了,Ubuntu默认是不包含编辑器vim和编译器gcc.如果你是刚安装好的Ubuntu电脑,下面我们将来实现自己的第一个程序. 1.准备工作 首先进入root ...

  2. 使用vs2015编写c语言程序

    使用vs2015编写c语言程序 转载Yanky--博客园 http://www.cnblogs.com/yankyblogs/p/7058036.html   编写c语言程序的软件有很多,当年刚开始学 ...

  3. 如何用Visual Studio 2013 (vs2013)编写C语言程序

    如何用Visual Studio 2013 (vs2013)编写C语言程序 (2014-05-16 10:58:15)   Visual Studio 2013是一个很强大的软件,但是刚开始用Visu ...

  4. 利用Delphi编写Socket通信程序

    一.Delphi与Socket 计算机网络是由一系列网络通信协议组成的,其中的核心协议是传输层的TCP/IP和UDP协议.TCP是面向连接的,通信双方保持一条通路,好比目前的电话线,使用telnet登 ...

  5. 使用vim在Linux下编写C语言程序

    1.进入字符界面 2.创建文件夹用于存放源文件 mkdir helloworld    //创建文件夹命令 cd helloworld        //进入新建的文件夹,这里应该说目录比较好,win ...

  6. 如何使用emacs编写c语言程序,并编译运行

    vi和emacs被分别被称为编辑器之神和神之编辑器.vi的入门精通都很难,emacs入门容易,精通难:vi使用起来不停地切换模式,而emacs则不停地ctrl,meta等组合键.因此,高德纳大师说操作 ...

  7. Ubuntu下编写C语言程序

    新建C文件,新建一个文件用touch,新建文件夹用mkdir. 打开文本编辑器,编辑C文件,命令用gedit xxx.C 编写C程序,Ctrl+S保存 编译运行 1.gcc命令是编译 -o是可选项 是 ...

  8. 【深入学习linux】在linux系统下怎么编写c语言程序并运行

    1. 首先安装下 gcc : centos yum -y gcc 2. 编写c程序保存hello.c: #include <stdio.h> #include <stdlib.h&g ...

  9. 通过编写c语言程序,运行时实现打印另一个程序的源代码和行号

    2017年6月1日程序编写说明: 1.实现行号的打印,实现代码的读取和输出,理解主函数中的参数含义. 2.对fgets函数理解不够 3.对return(1); return 0的含义理解不够 4.未实 ...

随机推荐

  1. 创建FILE GEODATABASE 和栅格目录及向栅格目录中添加影像

    using System;using System.IO;using ESRI.ArcGIS.DataSourcesGDB;using ESRI.ArcGIS.DataSourcesRaster;us ...

  2. 通用超级强大的基于Oracle数据库的代码生成器

    项目中使用了Oracle数据库,命名基本规范为表名和字段名全部大写,用下划线分割各个单词: 如“BASE_USER_LOGON_EXTEND”这个表表示用户登录的扩展表. 基于这个规范,通用权限管理系 ...

  3. iOS的APP验证版本更新方法

    一个老项目没有集成自动检测及提示用户更新新版本的功能,自己在网上查资料捣鼓出自己的方法,可能比较粗陋,希望大家多多指导,我们的项目的版本号是X.X.X的格式,所以直接把字符串转换成float类型的值无 ...

  4. 移植最新u-boot(裁剪和修改默认参数)之韦东山笔记

    1.下载.建立source insight工程.编译.烧写.如果无运行分析原因 tar xjf u-boot-2012.04.01.tar.bz2 cd u-boot-2012.04.01 make ...

  5. Android编程心得-ListView的Item高亮显示的办法

    在我们使用ListView的时候,经常会遇到某一项(Item)需要高亮显示的情况,如下图,有人说当我们点击子项的时候会变亮,但有时候业务逻辑需要让ITEM根据条件自动变亮,下面我来介绍一下我自己的解决 ...

  6. 关于Windows下mysql忘记root密码的解决方法

    原文链接: http://www.cnblogs.com/andy_tigger/archive/2012/04/12/2443652.html 1. 首先检查mysql服务是否启动,若已启动则先将其 ...

  7. Flexible 弹性盒子模型之CSS flex-direction

    实例 设置 <div> 元素内弹性盒元素的方向为相反的顺序: div { display:flex; flex-direction:row-reverse; } 复制 效果预览 浏览器支持 ...

  8. 做一个聪明的.net程序员

    最近看了传智播客(http://net.itcast.cn/)的.net培训视频,感受颇深,忍不住要把感受写下来跟网友分享一下. 我从接触.net到现在已经至少过去了三五个年头,用.net也已经做了若 ...

  9. C# winform 选择项 省市连动

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  10. 通过Curator操作Zookeeper的简单例子代码

    Curator主要解决了三类问题: 一个是ZooKeeper client与ZooKeeper server之间的连接处理; 一个是提供了一套Fluent风格的操作API; 一个是ZooKeeper各 ...