黑马程序员技术交流社区

标题: ios基础第5天 [打印本页]

作者: sunyongnan    时间: 2015-8-8 06:28
标题: ios基础第5天

一、函数的声明

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开头)等。



作者: 初见兔儿哥    时间: 2015-8-8 06:56
楠哥 笔记就是不错
作者: QQ2544    时间: 2015-8-8 09:04
不错,学习了
作者: 馒头爱财    时间: 2015-8-8 09:50
不错学习了!
作者: tt3tt3tt    时间: 2015-8-8 10:07
顶顶顶顶顶~~~~~
作者: Eil.tea    时间: 2015-8-8 11:12
拿来用了~~
作者: qq64694219    时间: 2015-8-8 13:51
复习 复习 学习 学习  共同进步,加油!
作者: 我的呸    时间: 2015-8-8 22:41
学习啦。
作者: WPeng    时间: 2015-8-8 23:12
都是31班的。。。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2