Hello World
创建一个新的C语言项目,系统将会自动编写一段经典入门代码:Hello World。这段代码的功能,就是向屏幕输出一串字符 " Hello World!"
程序的基本结构
- 头文件
#include <stdio.h>
#include <stdlib.h>
#include "main.h"
- C语言程序中,任何符号(包括变量和函数)的使用,都是需要提前声明的。
- 如果程序用到了系统库函数,那么就需要包含相应的系统头文件来进行声明。
- 可以通过查阅 man手册 来得到某个库函数所需要的头文件。
- 声明
- 概念:对编译器外定义的某个符号进行描述的过程,称为声明
- 作用:经过声明的符号,编译器才能正确识别和编译,否则编译器不认识,无法编译
- 符号:变量、函数等
- 示例:
// 声明一个变量符号number
int number = 100;
// 声明一个函数符号function
void function(int size, char *buf);
- 主函数
int main(void)
{
return 0;
}
- 主函数是必须有的,每一个C语言程序都有main函数,哪怕是空的。
- 主函数的名字是固定的,叫 main ,这个函数名不可被挪作他用。
- 主函数是程序的入口,也就是程序开始运行的地方。
- 主函数分解如下
int: 返回值类型,代表主函数最终的执行结果是一个整型数据
main: 函数的名字,这个名字不能变
(void):函数的参数列表,代表程序运行时不需要参数,等价于(),此处void可以省略
return 0:函数的返回值,代表主函数最终返回一个 0 给上级进程(称为父进程)。
一般而言,函数正常退出返回0,非正常退出返回非0。
man帮助手册
- 安装:
gec@ubuntu:~$ sudo apt-get install manpages
gec@ubuntu:~$ sudo apt-get install manpages-dev
gec@ubuntu:~$ sudo apt-get install manpages-posix
gec@ubuntu:~$ sudo apt-get install manpages-posix-dev
- 手册类别
- Shell命令(默认已安装)
- 系统调用
- 库函数
- 特殊文件(通常出现在/dev目录下)
- 文件的特殊格式或协定(例如/etc/passwd的格式)
- 游戏
- 杂项(例如一些宏定义)
- 系统管理员命令(通常只能由管理员执行)
- 非标准内核例程
- 查询
gec@ubuntu:~$ man -f printf
printf (1) - format and print data
printf (1posix) - write formatted output
printf (3) - formatted output conversion
printf (3posix) - print formatted output
gec@ubuntu:~$ man 3 printf
注意:按 q退出
标准输出
- 概念:屏幕是系统的标准输出设备,从屏幕中输出数据被称为标准输出
- 相关函数:
printf(); // 格式化输出函数
// 根据需要输出不同格式的数据
printf("%d\n", 100); // 输出1个整数
printf("%d, %d\n", 100, 200); // 输出2个整数
printf("%f\n", 3.14); // 输出浮点数
printf("%c\n", 'x'); // 输出字符
printf("%s\n", "abcd"); // 输出字符串
printf("a=%d, %s\n", "abcd"); // 输出字符串
- 语法点:
- 类似 %d、%f 被称为格式控制符
- 一个格式控制符对应一个数据
- \n 是一个字符,表示回车符,详细 ASCII 码表参阅 教案3。
- 格式控制符
- 十进制整数:%d
- 八进制整数:%o
- 十进制整数:%x
- 字符:%c
- 字符串:%s
- 单精度浮点数:%f
- 双精度浮点数:%lf
- 长双精度浮点数:%Lf
- 地址:%p
编写代码风格规范
- 缩进:凡是有代码块的地方都必须缩进,一对大括号 { } 代表一个代码块
- 空格:标点符号后面,一般加空格
- 空行:不同逻辑段落中间,一般加空行
- 符号命名:尽量能一望便知,做到顾名思义,避免使用无意义字符
// 示例代码
#include <stdio.h>
#include <stdlib.h>
int maxValue(int a, int b)
{
return a>b ? a : b;
}
int main(void)
{
int a;
int b;
int m = maxValue(a, b);
printf("最大值是: %d\n", m);
return 0;
}