C 语言学习的第 04 课:编译器常见错误和警告

同学们可能已经开始使用 C-Free 5 写自己的程序了。但是新手编程,总是会有一些磕磕绊绊。不要紧,在这篇文章中,就主要来了解一些编程开始时经常会遇到的语法方面的问题。

  1. warning: no newline at end of file

    出现此警告,不用太过于担心,仅仅是".c"文件的最后面,没有一个空行。你只需要每次写完代码后,都随手添加一个回车就可以了。至于原因,因为C-Free 5默认的编译器是 GCC,它来自于 Unix 系统,而 Unix 系统中默认的回车和 Windows 系统稍有不同,此警告与此相关,更多信息可以扩展阅读:http://blog.csdn.net/wjcquking/article/details/6634504

  2. undefined reference to `[email protected]‘

    出现此警告(错误)的原因是你可能将主函数main typo成为其他的单词。同学们需要注意的是,虽然在刚刚开始的C语言课程上,老师会一再强调,C语言编译出来的程序,是从main函数的第一行开始执行的(也就是一个程序的入口)。这样的强调,可能会让你有C语言离开"main"就不行的错觉。实际上,让main函数作为程序的入口,仅仅是一种约定俗成。可以通过编译器的编译选项,手动指定程序的入口。另外,还需要注意的是,虽然main那么重要,但是它并不是C语言的关键词。比如你可以尝试在程序中定义一个变量:int main。虽然看起来很奇怪,但是它是对的。

  3. error: syntax error before

    出现类似的错误,那就一定要检查在对应的行号附近,是不是少了点什么东西。比如标志一句话结束的";"等。

  4. error: stray ‘\xxx‘

    出现此类错误,那就要检查下,是不是在程序中,本应该使用英文状态的标点符号错用成中文的。

    ?

    暂时就总结这几种常见的错误,以后根据同学们的作业内容,再进行更新吧。

时间: 2024-10-12 19:30:13

C 语言学习的第 04 课:编译器常见错误和警告的相关文章

C 语言学习的第 03 课:你的 idea 是怎么变成能够执行的程序的

在上一篇文章中,我们说到,C 语言系统应该由程序开发环境,C 语言本身和 C 语言的库组成.且同时说了程序开发环境做了“编写”,“预处理”,“编译”和“链接”这几件事情.但是细节并没有一一呈现.不知道同学们是否想过,这里都经历了一些什么呢?! 在这一篇文章中,我们就来看看“上帝说,要有光,就有了光.”是怎么实现的.假设你是上帝,想要实现“给我输出 'HELLO,WORLD!'”.同学们使用的 IDE 是 C-Free 5,这里的所有操作,都以此编译器为例.假设编译器安装路径为“C:\Progra

C 语言学习的第 05 课:C 语言基础(01)

C语言程序中的绝大部分应该记录在以.c作为扩展名的文件里,这种文件叫做C语言????程序的源文件. C语言中还包括以.h作为扩展名的文件,这种文件叫做头文件. C语言中的四则运算: 加:+ 减:- 乘:* 除:/ 取余:% C语言程序里每个计算步骤都必须用";"结束,每个用";"结束的计算步骤叫做一条语句. C语言中大括号可以用来表示一个函数,一条语句可以实现一个功能,一个函数是多个语句的集合(但是允许没有语句的函数). 每个函数有自己的名字,不同函数的名字不同.

C 语言学习的第01课:先来谈谈计算机吧

各位同学,新学期,我就是你们的助教了.我的个人信息,你们的任课老师都已经介绍过了,所以我这里也就不再啰嗦.下面,来聊聊今天的话题:“先来谈谈计算机吧”. 想必看到这个题目,你们大家一定是不愿意点击进来的,毕竟,现在的你们呐,一定都是差不多天天面对计算机的(要知道,现在你们的手机,都要比早些年的计算机要先进,性能强大很多).但是,不知道你是不是有想过和它相关的一些问题呢.比如: 当按下开关机按键以后,它是怎么进入操作系统的: 进入操作系统以后,它怎么启动第一个程序的: 软件是怎么控制硬件的(比如你

java学习之数组的两种常见错误

连接上篇java探索之堆栈区分,启下对擦除的内在探索,可以了解掌握数组出错的两种方式 package com.dreamly.day01; /** * @author dreamly * */ public class ArrayTest01 { public static void main(String[] args) { int[] x=new int[3]; x=null;//擦除掉与实例对象的联系,即不保存地址值. System.out.println(x[0]); //NullPoi

拿到一个学习项目后,第一次运行常见错误

1.Caused by: org.apache.catalina.LifecycleException: Protocol handler start failed 原因:端口号被占用,解决方案:修改端口号,一般改成8081即可. 2.数据库错误 将mysql数据库开启 net start mysql 修改数据库配置,改成符合自己本地的. 数据库时区错误 3.待更新 原文地址:https://www.cnblogs.com/onlyzhangmeng/p/12359837.html

关于c语言学习 谭浩强的书

2007-11-16 13:22:58|  分类: PROGRAMME |  标签: |举报 |字号大中小 订阅 广大有志于从事IT行业的同志们,在你们进入这一行之前千万请看这篇文章!太经典了!对你绝对有启发! 千万别买谭浩强和等级考试的书!!!!!! 整理别人的言论,请大家踊跃讨论!!!!!!!!!!!! 1:书皮上面有那么多的牛人题词,估计也许是自己的水平太低. 2:ANSI只给了两种方式:int main(void) {/*...*/}和 int main(int argc, char *

黑 马 程 序 员_视频学习总结<Objective-C>----04 内存管理、protocol、block、ARC

---------------------- ASP.Net+Unity开发..Net培训.期待与您交流! ---------------------- 一.内存管理 1.为什么要用内存管理: 移动设备的内存极其有限,每个app所能占用的内存是有限制的.当app所占用的内存较多时,系统会发出内存警告,这时得回收一些不需要再使用的内存空间.比如回收一些不需要使用的对象.变量等 2.管理范围: 任何继承了NSObject的对象,对其他基本数据类型(int.char.float.double.stru

【转】朱兆祺教你如何攻破C语言学习、笔试与机试的难点(连载)

原文网址:http://bbs.elecfans.com/jishu_354666_1_1.html 再过1个月又是一年应届毕业生应聘的高峰期了,为了方便应届毕业生应聘,笔者将大学四年C语言知识及去年本人C语言笔试难点进行梳理,希望能对今年应届毕业生的应聘有所帮助. 2013年10月18日更新-->    攻破C语言这个帖子更新到这里,我不仅仅是为了补充大学学生遗漏的知识,我更重要的是希望通过我的经验,你们实际项目中的C语言写得漂亮,写出属于你的风格.“朱兆祺STM32手记”(http://bb

STL笔记(5)条款49:学习破解有关STL的编译器诊断信息

STL笔记(5)条款49:学习破解有关STL的编译器诊断信息 条款49:学习破解有关STL的编译器诊断信息 用一个特定的大小定义一个vector是完全合法的, vector<int> v(10);    // 建立一个大小为10的vector 而string在很多方面像vector,所以你可能希望可以这么做: string s(10);        // 常识建立一个大小为10的string 这不能编译.string没有带有一个int实参的构造函数.我的一个STL平台像这样告诉我那一点: e