一、函数的声明 1、函数声明是什么? 是对编译系统的一个说明,用于通知系统在本函数中所调用的函数是什么样的类型。 如:定义的函数的返回值的类型是什么,参数类型是什么。 2、函数声明有什么用? 可以告诉编译器我将定义什么函数,从而让别的函数能方便调用。 3、函数声明怎么用? 把函数去掉()拷贝到声明区域(函数里除外)就可以了。返回值 函数名(形式参数1,...) 4、函数声明什么时候用? 当需要定义函数的时候。 5、函数声明有什么特点? 1)仅声明可以不创建函数,但要调用必须定义函数。
2)声明可以只有参数类型,省略参数名,如:int add(int); 3)函数使用前应声明,不声明就默认当返回值是int类型来处理,很可能出错。
4)声明区域可以在其它函数里或函数外,只要放在本函数调用之前就可以。
6、关于scanf函数 1)scanf函数输入缓冲问题
(1)没有输入正确的数据scanf会返回0,不会处理输入缓冲中的数据; (2)scanf不会阻塞,而是直接返回,但是是发现缓冲中的数据不是所要的数据; (3)这样继续返回0......使得循环一直运行下去; (4)而不可能因为用户的再次输入退出循环。 2)scanf补充 (1)(缓冲区里有数据不会堵塞,当缓冲区没有数据时,才会堵塞)缓冲区符合要求的情况才会赋值给a,到打印区;如果不满足要求时,会一直待在缓冲区里(会一直输出最后一次正确的数据)。 (2)两种解决方式,一种是人为清掉,另一种是使用它 int main() { int a = 0; char ch; while(1) { a = 0; //if (scanf("%d",&a) == int b = scanf("%d",&b);if(1==b){ } if (scanf("%d",&a)) { printf("你输入的数字是:%d",a); }else { printf("不是数字请重新输入\n"); /* 这个函数是用来设置指定I/O的缓冲区大小,如果其第二个参数设置为NULL, 那么表示对这个流进行相应的I/O操作时,将不再有缓冲 */ setbuf(stdin,NULL); //方法一 /* 将缓冲区中的数据正常的读出来,这样由于数据被正常读出, 缓冲区自然也就会被自动清空了 */ while((ch=getchar())!='\n'); //方法二,推荐 } } } 二、头文件 1、头文件是什么? 是C语言中以.h结尾的文件,如stdio.h 2、头文件有什么用? 用于声明(描述)一个函数,把多个代码文件(如a.c;b.c;...)中的函数,声明在这个文件中,以便于重要、防止定义的冲突。 3、头文件怎么用? 定义:新建一个以.h结尾的文件,把需要用到的函数的声明直接放在里面。 引用:自定义的头文件:#include "头文件名.h" 编译器类库里的头文件:#include <头文件名.h>
4、头文件什么时候用? 当程序需要由多个C文件组成时。 5、头文件有什么特点? 1)在头文件中仅作声明,不做具体实现。
2)在头文件有声明只能确保编译成功成.o文件;但不确保能链接成功。
3)自定义的头文件引用时必须要有路径。
6、补充 右键-Xcode程序-显示包内容 /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/include/stdio.h 需要自己安装命令行工具: 直接在终端输入以下命令:xcode-select --install 查看是否已经安装命令行工具(是否包含.h文件): 查看路径:/usr/include/stdio.h 三、#include的用法 1、include是什么?
是C语言中的一个预处理指令。 2、include有什么用? 用于把一个文件的内容拷贝到这行命令所在的位置。 3、include怎么用? 引用:自定义的文件:#include "文件路径和名称" 编译器类库里的文件:#include <文件名>
4、include什么时候用? 当程序需要用到别的文件时。 5、include有什么特点? 1)可以定义在函数内也可以放在函数外。
2)必须包含:.路径(可以省略)、./表示当前路径、/开头表示绝对路径、../表示上一层路径。
3)以#开头,后面不能加分号。
4)必须定义在要使用之前,否则可以编译通过生成.o文件,但不能链接成功。
四、进制 1、进制是什么? 是人们规定的一种计数方法,几进制就表示每一位上的数,逢几进一位(增加一位)。 常见的进制有:二进制、八进制、十进制、十六进制等,任何进制的任意位,都不能大于或等于其本身。 2、进制有什么用? 用于计数,根据需求表示一个数值。 3、进制怎么用? 二进制就是逢二进一(0b开头),八进制是逢八进一(0开头),十进制是逢十进一,十六进制是逢十六进一(0x开头)等。
|