对C的扩展

第二章对C的扩展一、构建HelloObjective-C建立项目后在.m结尾文件内代码如下:#import<foundation>intmain(intargc,constchar*argv[]){NSlog(@"Hello,Objective-C");return(0);}代码解读:#import使用头文件来包含元素声明,元素可以包括结构体、符号常量、函数原型#import可以保证头文件只被包含一次,在C语言中一般使用#ifdef命令实现,Objective-C中也可使用#include实现不过一般都用#importNSlog()和@"字符串"NSlog()用于向控制台输出,C语言中使用printf()向控制台输出@"字符串"表示引用的字符串将作为Cocoa的NSString来处理必须向NSlog()传递@"字符串",否则将会报警NSlog()格式化字符串%d表示数字,%@表示字符串,%s表示非Cocoa规格的字符串NSLog(@"are%dand%ddifferent?%@",5,5,YES);NSString的功能:告知其长度自身一其他字符串比较将自身转换为整型值或浮点值BOOL类型它具有YES(1)和NO(0)值Objective-C中提供了BOOL类型和C的bool类并存,并且年长10余年在编写Cocoa代码中必须要使用BOOL类型main(intargc,constchar*argv[])argv中保存用户提供的参数,argv[0]保存程序名称argc提供参数的数组长度,为1时没有参数调出控制台的快捷键:Start+Shift+R或者在菜单Run中选ConsoleBOOL类型示例代码#import<foundation>//returnsNOifthetwointegershavethesame//value,YESotherwiseBOOLareIntsDifferent(intthing1,intthing2){if(thing1==thing2){return(NO);}else{return(YES);}}//areIntsDifferent//givenaYESvalue,returnthehuman-readable//string"YES".Otherwisereturn"NO"NSString*boolString(BOOLyesNo){if(yesNo==NO){return(@"NO");}else{return(@"YES");}}//boolStringintmain(intargc,constchar*argv[]){BOOLareTheyDifferent;areTheyDifferent=areIntsDifferent(5,5);NSLog(@"are%dand%ddifferent?%@",5,5,boolString(areTheyDifferent));areTheyDifferent=areIntsDifferent(23,42);NSLog(@"are%dand%ddifferent?%@",23,42,boolString(areTheyDifferent));return(0);}//main</foundation></foundation>

相关推荐