学习程式语言的第一件事红色重点,就是先学会如何在主控台(Console)上显示文字,也就是纯文字模式的显示,这很枯燥,QA98不若一些视窗化点cc的开发环境写起来有成就感,但主控台可以让程式设计人员专心于程式逻辑的开发,因而对初学者来说,是扎实学习语言的一个方式。
来看看如何使用C 来撰写一个简单的程式,将指定的文字输出于主控台上,C 的副档名为*.c,你可以使用任一种纯文字编辑程式来编辑C 程式:
#include <stdio.h>
int main(void) {
printf("Hello! World!\n");
printf("哈啰!C 语言!\n");
return 0;
}
首先看到程式的第一行:
#include <stdio.h>
#include
是巨集(Macro)前置处理器指令(Preprocessor directive),它告诉编译器(Compiler)这个程式会用到stdio.h 这个标头档(Header file)定义的函式(Function),以便正确地编译程式中使用到的程式库函式,被含括的标头档内容,会被插入#include
的位置,然后再进行编译。
简单地说,主控台的输入输出功能就定义在这个档案中,这之后还会详细说明,现在请先记得,要在主控台进行输入输出,这一行一定要写。
接下来看主函式(Main function)的部份,在C 程式中,程式的进入点(Entry point)是main()
这个函式:
int main() {
....
return 0;
}
其中int
表示这个程式执行完毕后会传回整数(Integer),括号的位置可设置参数列,之后会学到,在执行程式时,可同时将相关引数传递给程式。目前并不需要传递引数,因此括号中可设定void
,表示程式不接收任何引数。
程式的最后一行是return 0
,也就是程式结束后传回0,在不成文的规定中,程式结束会传回一个数值,通常0 表示程式正常结束,你可以让其他程式或shell 来取得程式的传回值,以进行进一步的处理。
不过,在C99/C11 之后,如果没有在最后撰写return 0
,预设就是传回0 了,你可以省去这个动作。
再来看main()
中的两行陈述:
printf("Hello! World!\n");
printf("哈啰!C 语言!\n");
其中int
表示这个程式执行完毕后会传回整数(Integer),括号的位置可设置参数列,之后会学到,在执行程式时,可同时将相关引数传递给程式。目前并不需要传递引数,因此括号中可设定void
,表示程式不接收任何引数。
程式的最后一行是return 0
,也就是程式结束后传回0,在不成文的规定中,程式结束会传回一个数值,通常0 表示程式正常结束,你可以让其他程式或shell 来取得程式的传回值,以进行进一步的处理。
不过,在C99/C11 之后,如果没有在最后撰写return 0
,预设就是传回0 了,你可以省去这个动作。
再来看main()
中的两行陈述:
printf("Hello! World!\n");
printf("哈囉!C 語言!\n");
在C 程式中,每一个陈述(Statement)结束都必须使用分号(;
),printf()
是C 提供的标准输出函式,如果要输出文字至萤幕上,可以使用双引号包括文字并写至printf
的括号之间,简单地说,若要将文字显示于萤幕上,可以使用这样的写法:
printf("文字");
若在欲显示文字的后面加上'\n'
,表示要进行换行,否则的话,下一段文字会直接显示于同一行文字之后。
要输出的字串是使用双引号""
来包括,如果要显示双引号,必须先告诉编译这件事,也就是使用跳脱字元\"
,例如:
printf("我是\"良葛格\"!");
这段文字会文字模式下显示:我是"良葛格”。
接下来可以使用编译器来编译程式了,我是使用MinGW-w64,GNU 编译器版本是8.1.0,执行之后,就可以看到主控台上出现这两段文字:
$ gcc hello.c
$ ./a.out
Hello! World!
哈啰! C 语言!