人与人之间是使用中文进行正常沟通,对于嵌入式平台而言,我们必须懂得与它沟通的语言,才能在开发中得心应手!
说到C语言,同学可能会觉得,嗯,我大一学过,但是就是啥都忘记了....,这个嘛,忘记不要紧,最重要是有一颗想学回来的心。那么今天就讲解一下最基础的C语言程序框架吧。
在高校上课,一般地问我们同学,C语言程序从哪里开始执行呐,90%同学都会跟我说:“头文件!”,额,这个肯定是不对的,同学之所以会觉得是从头文件开始执行,是因为大家觉得头文件放在最开头,那肯定是最开始执行啦,可惜不对哦!C语言程序真正的入口是main函数。
那么,这个main函数长什么样子的呢?请看下图:
这个就是全世界最简单的C语言程序,程序一开始就结束了,并不用写头文件。那么到底这几行代码是什么意思呢?
1)int:是main函数的返回值类型,就是无论main函数无论是成功还是失败,都会返回一个int类型的数据。
2)main:代表的是函数名,一个C语言程序中有且仅有一个main函数。
3)():函数名后面的小括号可以填参数,不填默认没有参数,等价于void
4){}:花括号代表的是函数体,就是函数实现的功能代码就是写在这里的。
5)return 0:就是函数正常结束,返回一个0的数据,这个数据必须与int类型对应。(例如:返回值类型是int的,就不能返回一个char字符类型)
小编推荐一个学C语言/C++的学习裙【 三四一,六三六,七二七】,无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!裙内有开发工具,很多干货和技术资料分享!
对于main函数,我们有初步的了解了吧
一个什么也不做的main函数如下:
void main() {}
更进一步,我们可以让main函数返回一个状态值,表示最终执行的状态。
int main() { return 0; }
但仔细回想一下函数的概念,你会惊叹,那main函数能不能有参数呢?答案是:有!
int main( int argc, char *argv[] )
{
return 0;
}
main函数可以有两个输入参数:
argc:指明参数的个数(即argv数组元素的个数)
argv:字符串数组表示的具体参数(一个包含多个字符串的数组)
理解main函数的参数
让我们先看一下这两个值具体是什么。
如图所示,当我们直接运行程序时,参数的个数是1,argv[0]是当前应用程序的名称。按照前面的解释,数组只有1个元素, 但当我们访问argv[1]时,其值是空指针NULL,程序并没有因为越界访问而出现异常,所以我们大概可以推测出外部传递给main函数的参数如下。
你会注意到argv数组在参数列表结尾处填充了一个NULL参数,用于指示参数结束。
这是程序设计上的一个小技巧,可以方便我们使用循环对参数进行访问。如:
我们对指针还没有更深层次的讲解,所以不要纠结于没有理解这些代码。
领取专属 10元无门槛券
私享最新 技术干货