下面了解一下C程序的基本结构。程序由一个或多个函数组成,必须有mian( )函数。
函数由函数头和函数体组成。
函数头包括函数名、传入该函数的信息类型和函数的返回类型。通过函数名后的圆括号()可识别出函数,圆括号里可能为空,可能有参数。函数体被花括号括起来。由一系列语句、声明组成。
例:
函数头
int main(vioid)
函数体
(
int a; //声明
a = 1; //语句
printf("%d is champion.\n",a); //语句
return 0;
)
简而言之,一个简单的C程序的格式如下:
#include
int main(void)
{
语句
return 0;
}
(大部分语句都以分号结尾。)
选择有意义的函数名和注释。注意,使用这两种技巧时应相得益彰,避免重复啰嗦。
例如:如果变量名是height、width,就不必写注释说明该变量表示高度和宽度;但是如果变量名是video_routine_7,就要解释一下该变量名的含义。(此处变量的概念下节内容会写到)
在函数中用空行分隔概念上的多个部分。
如上节内容中的这个程序,用空行把声明部分和程序其他部分区分开来。
#include
int main(void)
{
int num;
num = 1;
printf("I am a simple");
printf("computer.\n");
pientf("My favorite number is %d because it is first.\n",num);
return 0;
}
C语言并未规定一定要使用空行,但是多使用空行能提高程序的可读性。
#include
int main(void) { int a; a = 5;
printf (
"%d\n",
a); return 0;
}
分号会告诉编译器一条语句哪里结束、下一条语句在哪里开始。如按上节内容提到的程序示例来编写代码,程序的逻辑会更清晰。
⑴把所有变量放在一处,方便查找和理解程序的用途;
⑵声明变量会促使你在编写程序之前做一些计划;
⑶声明变量有助于发现隐藏在程序中的小错误;
如变量名拼写错误
⑷如果事先未声明变量,C程序将无法通过编译。
现在,你可以试着写一个简单的程序,但是可能会犯一些简单的错误。程序的错误通常叫做bug,找出并修改错误的过程叫做调试(debug)。以下是一个错误程序:
#include
int main(void)
(
int n, int n2, int n3;
n = 5;
n2 = n * n;
n3 = n2 *n2;
printf("n = %d,n squared = %d,n cubed = %d\n", n, n2, n3);
return 0;
)
试修改上述错误程序
语法错误
⑴main( )函数体应使用{ }
⑵变量声明应这样写:
int n, n2, n3;
或者,这样写:
int n;
int n2;
int n3;
编译器会提示错误,但也有出错的时候,也许某处隐藏的语法会导致编译器误判。
若编译器报错某行缺少分号,请检查上一行。
语义错误
语义错误是指意思上的错误。
n3 = n2 * n2;
此处,n3表示n的3次方,但是代码中的n3被设置成n的4次方(n2 = n * n)
编译器无法检测语义错误,因为这类错误并未违反C语言的规则。编译器无法了解你的真正意图,所以你只能自己找出错误。以下为修正了程序的语法错误:
#include
int main(void)
{
int n, n2, n3;
n = ;
n2 = n * n;
n3 = n2 * n2;
printf("n = %d,n squared = %d,n cubed = %d\n", n, n2, n3);
return 0;
}
该程序的输出如下:
n = 5, n squared = 25; n cubed = 625
检查的过程可能比较麻烦,但是用这种一步一步来查看程序的执行情况,通常是发现程序问题的关键。