C语言-简单的函数使用
用一些简单的C语句来编写我们的第一句程序。 puts(); 编译器; 函数; 头文件;
简单的来说,在屏幕上输出一个你想要的一串字符
puts("Hello world!");
这里利用一个简单的输出代码将你想输出的东西输出到你的屏幕上。
当然也有专业的称呼,理解一下其实这个函数就不难的:
- “在屏幕上显示文字”叫做输出(Output)
- 每个文字都是一个字符(Character)
- 多个字符组合起来,就是一个字符序列, 叫做字符串(String) 而puts就是Output string的缩写,意思就是输出字符串
在C语言中字符串一定要用""
包围起来。
每一句结束时后面都要有一个;
来代表这一句话结束了。
在C中不能只有puts(),只有他是不能运行的,还需要添加一些其他的代码,才能将这些都系运行起来:
#include <stdio.h>
int main()
{
puts("Hello world!");
return 0;
}
其中的1-3和5-6行是固定的,基本上所有的C语言源代码都必须要有这几行,暂时不需要了解,他们是什么意思,在其他的文章中我会详解。
在C语言学习中我们要记住,在编写C语言程序时一定要使用英文半角输入法输入
不然会有错误。
在编写C语言的过程中我们需要将编好的程序存入到文件中,这样代码才不会丢失,才能方便以后找到,变成一个个可执行的文件,这种保存代码的文件就叫做源文件(Source File)
。
我们编写C语言的源文件的后缀为.c
;
源文件其实就是一个咱们常见的文本文档,只是在其中输入一段C语言程序后会将原来的.txt
后缀改成.c
后缀。
编译
在计算机编译时,会传入CPU进行编译,而CPU是识别不了C语言代码的。编译是将C语言代码转换成CPU能识别的二进制编码,这种转换过程就称为编译,而实现这种编译过程的工具就称为编译器
。
当然编译一种很复杂的过程,其中包含很多我们现在学习不到的知识,期间涉及到复杂的算法和硬件结构。我们这里不做过多讲解,当然如果有兄弟真的有这方面的兴趣,我们可以去自行查阅编译原理
一书。不了解编译原理不影响我们学习C语言,不建议初学者去学习防止将自己绕进去。
链接(Link)
说完编译,我们就不得不说说链接。 在编译完C语言程序后并不会直接输出.exe执行文件,而是生成了一种叫做目标文件(Object File)的中间文件,这个文件当然也是二进制的,它和可执行文件的格式是一样的,对于C++,目标文件后缀为.obj,而对于C语言中它的后缀名为.o。
而目标文件只有在经过链接后才能变成可执行文件,虽然编译后的二进制编码和可执行文件的二进制编码是一种形式的,但它还要经过与系统组件(标准库,动态链接库等等)进行连接后,才可执行,我们也可以将链接当成一种另类的打包
过程,它将所有的二进制的文件打包成一个文件组合成一个可执行文件,而要执行这个过程我们需要一个软件叫做连接器(Linker)
。
函数
C语言是由一个个函数组成的。在C语言中,有的语句使用时不能带括号,而有的语句是必须要带括号的,而这种带括号的则称为函数。
而一个个函数的形成,是由一些源代码组成的,当你引用函数时,会将执行这一组源代码。
这些代码,早就被分门别类地放在了不同文件中,并且每一段代码都有唯一的名字,使用代码时,只要在对应的名字后面()就可以了。这样的一段代码能够独立地完成某个功能,编写完成后就可以调用使用,这种代码调用的方式成为函数的调用。
如果函数中要处理多个数据,那么他们之间用,
隔开。
自定义函数和mian函数
C语言中会自带的函数称为库函数(Library Function)
,库是编程中的一个基本概念,可以单纯的认为它是一些函数的集合。在磁盘上显示是一个单独的文件夹,C语言自带的库称为标准库,其他公司或个人开发的库称为第三方库。
当然我们除了调用库函数,我们还可以自定义函数。
需要注意的是,C语言规定,一个程序必须有且只有一个main函数。main被称为主函数,是程序的入口函数。程序从main函数开始,到main函数结束。(遇到return或者执行到函数末尾时才算结束)。
还要注意一个问题,有一些其他的教材会将main函数前加上void,当然这样并不算错误,但是在VC6.0后就基本不能通过编译了,这个不是标准main函数的写法。而在现在正规的main函数的写法只有两种int main(void)
、int main(int argc,char *argv[])
。C/C++从来没有定义过void main。包括main函数前没有任何东西这种写法,这种写法如果不明确返回值类型,它会默认为int main
,但不建议大家这么写,最好的main函数的写法还是我前面提到的两种。
头文件
在每次写C语言时我们都要在最开头写上#include <stdio.h>
。是什么意思呢?
C语言开发者们编写了很多常用函数,并将它们分门别类放入不同的文件,而这些文件就称为头文件,每个头文件都包含着不同的函数,而我们想要调用某个函数时一定要在头文件中写入你要调用的库,不然编译器会找不到你要找的函数。
实际上,头文件往往只包含函数的说明,也就是告诉我们函数该怎么用,而函数本身保存在其他的文件中,只有在链接时才会找到,对于初学者,现在可以理解为头文件中包含了若干函数。
引入头文件是用#include
命令来引用的,并将文件名放在<>
中。头文件是以.h为后缀的,而C语言代码是以.c为后缀,他们都是文本文件,没有本质上的区别,而#include
也只是将头文件中的内容引用到当前文件,然后和当前文件一起编译,你也可以尝试一下将头文件中的代码复制出来直接填在你的程序前面,这样你也可以做到不用调用。
.h
中的语法规则和.c
中是一样的,你也可以把后缀改成.c,完全正确,但是实际开发中没人会这么用,这样显得你很不专业,也不规范。