一、C语言的编译过程
1、用clang编译.c源文件为.o目标文件
编译过程中检测程序的语法,产生相应的错误(error)和警告(warning)信息,如果有错误(error),那么编译失败,不可能产生.o目标文件,如果有警告(warning),并不影响编译,可以产生.o目标文件(前提是没有错误)编译过程只会检测语法,并不会检测有没有函数的定义.
2、用clang链接.o目标文件为.out可执行文件
链接的时候会检测有没有函数的定义,如果没有定义,就链接失败
3、用终端运行.out可执行文件
4、例子
cc -c Text.c 编译文件
cc Test.o 链接
./a.out 执行
cc .c 编译的文件夹的路径下面
二、objective-c中常用的数据类型
基本数据类型:
int 输出格式符:%i, %d, %o %x
float 输出格式符:%f, %e, %g
double 输出格式符:%f, %e, %g
char 输出格式符:%c
限定符:
long
long int 输出格式符:%li 在数字后面加L(long int number = 123324123234123L)
long double 输出格式符: %Lf
long long
long long int: %lli
short
short int: %hi
unsigned
signed
输出内存的地址,使用%p。
其它 :
1.id
id是一种泛型,用于表示任何种类的对象。需要注意的是id是一个指针,所以在使用id的时候不需要加星号。例如:id foo=nil.
2.枚举数据类型、typedef 语法以及数据类型的转换,与C 一样。
3.布尔类型
C语言拥有布尔类型bool,objective-c拥有布尔类型BOOL,具有YES和NO值,Cocoa代码中要用BOOL。
4. sel选择器
选择器就是指向方法的一个指针,可以简单理解为程序运行到这里就会执行指定的方法。
5.nil和Nil
nil类似C的NULL,nil表示一个Objctive-C对象,这个对象的指针指向空。
而Nil和nil有一点不一样,Nil定义一个指向空的类(是Class,而不是对象)。 注意在objective-c中,向一个空的对象发送消息是合法的。
6.IMP
IMP是一个指向函数的指针,这个被指向的函数包括id(“self”指针),调用的SEL(方法名),再加上一些其他参数。
7.class
class定义了各种内部变量, 数据和各种你能够调用的方法methods,以及你能够执行的各种动作action。
8. method
method(我们常说的方法)表示一种类型,这种类型与selector和实现(implementation)相关。
三、标识符
定义规则:
1、 只能有26个英文字母大小写 10个阿拉伯数字 下划线组成
2、严格区分大小写
3、 不能以数字开头
4、 不能是关键字
命名规则
被const 修饰的变量是只读的,只能在定义变量的同时进行赋值
定义常量 const int a=10;
六、内存的寻址规律
内存的寻址 0000 0000 0000 00001
从大到小寻址
1、用clang编译.c源文件为.o目标文件
编译过程中检测程序的语法,产生相应的错误(error)和警告(warning)信息,如果有错误(error),那么编译失败,不可能产生.o目标文件,如果有警告(warning),并不影响编译,可以产生.o目标文件(前提是没有错误)编译过程只会检测语法,并不会检测有没有函数的定义.
2、用clang链接.o目标文件为.out可执行文件
链接的时候会检测有没有函数的定义,如果没有定义,就链接失败
3、用终端运行.out可执行文件
4、例子
cc -c Text.c 编译文件
cc Test.o 链接
./a.out 执行
cc .c 编译的文件夹的路径下面
二、objective-c中常用的数据类型
基本数据类型:
int 输出格式符:%i, %d, %o %x
float 输出格式符:%f, %e, %g
double 输出格式符:%f, %e, %g
char 输出格式符:%c
限定符:
long
long int 输出格式符:%li 在数字后面加L(long int number = 123324123234123L)
long double 输出格式符: %Lf
long long
long long int: %lli
short
short int: %hi
unsigned
signed
输出内存的地址,使用%p。
其它 :
1.id
id是一种泛型,用于表示任何种类的对象。需要注意的是id是一个指针,所以在使用id的时候不需要加星号。例如:id foo=nil.
2.枚举数据类型、typedef 语法以及数据类型的转换,与C 一样。
3.布尔类型
C语言拥有布尔类型bool,objective-c拥有布尔类型BOOL,具有YES和NO值,Cocoa代码中要用BOOL。
4. sel选择器
选择器就是指向方法的一个指针,可以简单理解为程序运行到这里就会执行指定的方法。
5.nil和Nil
nil类似C的NULL,nil表示一个Objctive-C对象,这个对象的指针指向空。
而Nil和nil有一点不一样,Nil定义一个指向空的类(是Class,而不是对象)。 注意在objective-c中,向一个空的对象发送消息是合法的。
6.IMP
IMP是一个指向函数的指针,这个被指向的函数包括id(“self”指针),调用的SEL(方法名),再加上一些其他参数。
7.class
class定义了各种内部变量, 数据和各种你能够调用的方法methods,以及你能够执行的各种动作action。
8. method
method(我们常说的方法)表示一种类型,这种类型与selector和实现(implementation)相关。
三、标识符
定义规则:
1、 只能有26个英文字母大小写 10个阿拉伯数字 下划线组成
2、严格区分大小写
3、 不能以数字开头
4、 不能是关键字
命名规则
一个标识符如果包含多个单词,除第一个单词,后面的每个单词的首字母大写
四、注释
单行注释 //
多行注释 /* */
单行注释与多行注释不能嵌套
被const 修饰的变量是只读的,只能在定义变量的同时进行赋值
定义常量 const int a=10;
六、内存的寻址规律
内存的寻址 0000 0000 0000 00001
从大到小寻址