HelloWorld
在文章嵌入式Linux开发之《C语言专题概述》中概述了《C语言专题》部分即将讲的一些内容。从本文章开始会相继更新这一部份,昨天通过一个最简单同时又是精典的C代码事例-helloworld.c,通过这个代码来对C语言有一个整体的认识。
先上代码:
#include int main(int argc,char** argv) { //输出hello world printf("hello worldn"); return 0; }
解释这段代码之前,先补充2个概念:源文件和头文件源文件:源代码文件,C语言中源文件后缀名是.c,C++语言中源文件后缀名是.cpp,Java后缀名是.java。头文件:包含函数及变量的申明(申明和定义概念后续讲解,这儿先提一下),有些也包含函数的定义(例如inline刚毅函数),函数的实现部份常常是在源代码中也即相应的.c文件中,头文件的后缀名是.h。C语言代码由源文件和头文件组成。
将前面代码归类表示如下:
(1)关键字:intcharreturnC语言标准定义中有32个关键字,这种关键字系统早已帮我们定义好了,我们只须要看懂它会使用即可。后续再讲解C语言时会相继讲解。
(2)变量及参数:argvargv在C语言开发中常常须要定义变量嵌入式linux应用程序开发考卷,这种变量在程序的执行过程中会进行相应的运算操作,操作的结果是我们所须要的。例如最简单的加、减、乘和除操作。定义变量时要注意变量名一定不要和关键字重复,否则会报错。
(3)变量及参数类型:intchar我们在定义变量时要给定相应的类型,类似于不同的香蕉有不同的气味一样,由于变量是存贮在显存中而每一种类型占不同的空间。例如int类型在32位操作系统中占4个字节,char占一个字节。
(4)函数:mainprintf函数是C语言的组成单位,我们按照相应的功能编撰相应的函数。函数的参数、返回值是可有可无的,具体依据功能来定。譬如说这儿的main和printf函数。printf经常作为输出以及调试代码用。main函数比较特殊又重要(以前的面试、面试题),它是整个程序的入口,被操作系统来调用,其他的函数被main函数直接或则间接调用。这么可以有多个吗?不可以,倘若有多个,操作系统不晓得来调用那个main函数。main函数有多种写法:
1)voidmain(void){}
2)intmain(){}
3)intmain(void){}
4)intmain(intargc,char**argv){}
5)intmain(intargc,char*argv[]){}
前2种用法在单片机开发中常见,而且在嵌入式linux开发中最好用前面3种的写法嵌入式linux应用程序开发考卷,第3种写法表示没有参数,第4和第5种写法有参数,而且等价。由于main函数确实是返回值的,参数是可选的。操作系统会按照main函数的返回值来判定程序的正确执行与否,假如返回void,那代表的是哪些状态呢?并且一些编译器支持这些写法,一些编译器不支持。这么写法1和2为何不出错?由于C语言被设计下来到C90标准发布这段时间,对C语言不同的实现就造成了对main函数的差别性。为了代码的通用可移植性,建议采用标准提供的方式。
(5)预编译指令:#include将代码文件须要用到的函数申明、常量等包含到代码文件中。它不是C语言的关键字,而是属于一种预编译的指令。预编译属于预处理的一部份,详尽的预处理会在后续文章中介绍,这儿点到为止。#include:主要是拿来包含头文件表示我们所包含的内容是在系统路径下,是系统自带的linux系统官网,我们直接用就可以。系统在编译时会手动到系统路径下找相应文件。与之对应的#include""表示所包含的文件是我们自己写的。在编译时系统会先在你项目的当前目录查找是否有对应头文件,假如没有,它会到系统路径中去查找对应的头文件。此处包含stdio.h的缘由是前面代码中用到了printf函数,printf函数被包含在stdio.h中,可以在linux系统中用linux命令man2printf查找对应的头文件(假如对linux命令不熟悉,可以阅读我写的关于linux命令的几篇文章:嵌入式软件开发之《Linux命令专题(一)》)
(6)分号:;表示一行代码的结束
(7)注释:注释是给程序员看的。C语言中注释的形式有"//"和“/**/”2种表示方式。"//"通常用于单行的注释,“/**/”一般用于整块的注释。注释在代码预处理后才会消失,所以注释不会加重代码的大小。并且也不要每一行都写注释,这样代码会变得臃肿,应当在“合适的地方”加上“合适的注释”。
以上的7部份都属于C语言的范畴,通过这段代码让你们对C语言有一个认识,后续渐渐讲。
最后补充编撰C语言代码的步骤:
1)编撰源代码
2)编译源代码
3)执行编译生成的可执行文件
4)调试。倘若执行的结果与自己想的不一样,这么就须要反复进行调试linux系统下载官网,晓得符合自己的要求。
运行结果如右图所示:linux中的编译器是gcc,假如在编译时加上-o可执行文件名,会将源文件helloworld.c编程成目标文件helloworld,然后执行helloworld;假如在编译时不加上目标文件,这么可执行文件是a.out
执行过程
编撰C语言源代码的工具可以是vs,codeblocks,它是在windows下编辑、编译及运行。做嵌入式linux开发,通常是在windows下编辑源代码,可以用Notepad++也可以用Sourceinsight,在linux中编译并执行,缘由是Linux中编辑源代码软件没有windows下灵活。这个自己用一下就晓得了。
注意:代码是调试下来的,不是写下来的,所以你们一定要学会调试代码。
未完待续,后续继续更新...
更多精彩内容可以关注此头条号:嵌入式软硬件开发喜欢的话你们可以“点赞”、“收藏”、评论或则“转发”,谢谢你们。互相交流,共同成长。