C for ios --- 标识符与注释
来源:互联网 发布:辛巴软件 编辑:程序博客网 时间:2024/06/15 18:28
什么是标示符
日常生活中得标识符
- (img)
- 乔布斯/乔丹/陈冠希这些都是标识符
标识符就是程序员自己在程序中起的一些名字。
- 首先要明确的是,程序员自己起的名字,肯定是不能使用和关键字同名的名字。
2. 标识符的作用
标识符,从字面上理解就是用来标识某些东西的符号,标识的目的就是为了将这些东西区分开来
其实标识符的作用就跟人类的名字差不多,为了区分每个人,就在每个人出生的时候起了个名字
C语言是由函数构成的,一个C程序中可能会有多个函数,为了区分这些函数,就给每一个函数都起了个名称。函数的名称就是标识符的一种。除了函数,以后还会学到“变量”这个概念,变量的名称也是标识符
3.标识符命名规则
- 1.只能由26个英文字母的大小写、10个阿拉伯数字0\~9、下划线_组成
- 2.严格区分大小写,比如test和Test是2个不同的标识符
- 3.不能以数字开头
- 4.不可以使用关键字作为标识符
4.练习
fromNo12 my_Boolean Obj2 lnj Mike2jack _test haha(da)tt jack_rose GUI
@: 2
标示符命名规范
本小节知识点:
- 【理解】标识符命名规范
- 【了解】标示符命名规范详述
- 【了解】其它标示符命名规范
1.标识符命名规范
- 命名规范:
- 起一个有意义名字,能够��高代码的可读性
- 驼峰命名(除开第一个单词后面每个单词首字母大写)
- (img)
- (img)
2.标示符命名规范详述
驼峰命名法(Camel-Case)是电脑程序编写时的一套命名规则(惯例):
程序员们为了自己的代码能更容易的在同行之间交流,所以才取统一的可读性比较好的命名方式。
- 例如:有些程序员喜欢全部小写,有些程序员喜欢用下划线,所以如果要写一个my name的变量,他们常用的写法会有myname、my_name、MyName或者myName。这样的命名规则不适合所有程序员阅读,而利用驼峰命名法来表示,可以增加程序可读性。
驼峰命名法就是当变量名或函数名是由一个或多个单字连结在一起,而构成的唯一识别字时,第一个单字以小写字母开始,第二个单字的首字母大写;或每一个单字的首字母都采用 大写字母
- 例如:myFirstName、myLastName,这样的变量名看上去就像骆驼峰一样此起彼伏,故得名。
驼峰命名法(Camel-Case)一词来自 Perl 语言中普遍使用的大小写混合格式,
而 Larry Wall 等人所著的畅销书《Programming Perl》(O~'~Reilly 出版)的封面图片正 是一匹骆驼。 驼峰命名法的命名规则可视为一种惯例,并无绝对与强制,为的是增加识别和可读 性。
不按照规范的后果
- (img)
3.其它标识符命名规范
命名应当直观且可以拼读,要望文知意,便于记忆和阅读。
- 标识符最好采用英文单词或其组合,不允许使用拼音。程序中的英文单词一般不要太复杂, 用词应当准确。
命名的长度应当符合“min-length && max-information”原则。
- C 是一种简洁的语言, 命名也应该是简洁的。例如变量名MaxVal 就比 MaxValueUntilOverflow 好用。标识符的长度一般不要过长,较长的单词可通过去掉“元音”形 成缩写。
- 另外,英文词尽量不缩写,特别是非常用专业名词,如果有缩写,在同一系统中对同一单词必 须使用相同的表示法,并且注明其意思。
- 大多数ANSI编译程序允许有至多31个有效字符。也就是说,只有变量名或函数名的前31个字符 的唯一性会被检查,其余的字符将被忽略掉。
比如: PrintOutAllTheClientsMonthEndReports(); prt_rpts();
当标识符由多个词组成时,建议采用“驼峰命名法”。
- 比如:int CurrentVal;这样的名字看起来比较清晰,远比一长串字符好得多。
尽量避免名字中出现数字编号,如Value1,Value2 等,除非逻辑上的确需要编号。
- 比如驱动开发时为管脚命名,非编号名字反而不好。 初学者总是喜欢用带编号的变量名或函数名,这样子看上去很简单方便,但其实是一颗颗定时炸 弹。这个习惯初学者一定要改过来。
对在多个文件之间共同使用的全局变量或函数要加范围限定符
- (建议使用模块名(缩写)作为范围限定符)。(GUI_ ,etc)标识符的命名规则
标识符名分为两部分:规范标识符前缀(后缀) + 含义标识。
- 非全局变量可以不用使用范围限定符前缀。
@: 3
注释基本概念
本小节知识点:
- 【掌握】什么是注释
- 【了解】为什么要使用注释?
- 【了解】应用注释的目的和应用场景
- 【理解】注释的特点
1.什么是注释
注释是在所有计算机语言中都非常重要的一个概念,从字面上看,就是注解、解释的意思
注释可以用来解释某一段程序或者某一行代码是什么意思,方便程序员之间的交流。假如我写完一行代码后,加上相应的注释,那么别人看到这个注释就知道我的这行代码是做什么用的
- 注释可以是任何文字,也就是说可以写中文
- 在开发工具中注释一般是绿色
江哥提示:
” >+ 初学者编写程序可以养成习惯:先写注释再写代码。
” >+ 将自己的思想通过注释先整理出来,在用代码去体现。
” >+ 因为代码仅仅是思想的一种体现形式而已。
2.为什么要使用注释?
- 新浪微博表情键盘”其中一个”文件代码
~~ typedef enum{~~ HMToolBarBtnTypeNear = 100,~~ HMToolBarBtnTypeNormal,~~ HMToolBarBtnTypeEmoji,~~ HMToolBarBtnTypeLXH~~ }HMToolBarBtnType;~~ ~~ @interface HMEmoticonsController ()<UICollectionViewDataSource, UICollectionViewDelegate>~~ @property (weak, nonatomic) IBOutlet UICollectionViewFlowLayout *layout;~~ @property (weak, nonatomic) IBOutlet UICollectionView *emoticonView;~~ - (IBAction)emoticonToolbarClick:(UIBarButtonItem *)sender;~~ @end~~ ~~ @implementation HMEmoticonsController~~ ~~ - (void)viewDidLoad {~~ [super viewDidLoad];~~ NSUInteger col = 7;~~ NSUInteger row = 3;~~ NSUInteger margin = 10;~~ CGFloat screenWidth = [UIScreen mainScreen].bounds.size.width;~~ CGFloat emoticonWidth = (screenWidth - (col + 1) * margin) / col;~~ CGFloat emoticonHeight = emoticonWidth;~~ self.layout.itemSize = CGSizeMake(emoticonWidth, emoticonHeight);~~ self.layout.minimumInteritemSpacing = margin;~~ self.layout.minimumLineSpacing = margin;~~ self.layout.sectionInset = UIEdgeInsetsMake(margin, margin, margin, margin);~~ self.layout.scrollDirection = UICollectionViewScrollDirectionHorizontal;~~ self.emoticonView.pagingEnabled = YES;~~ }~~ - (NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView~~ {~~ return [HMEmoticonsManager shareManager].emotionSections.count;~~ }~~ ~~ - (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section~~ {~~ HMEmoticonSection *categoryScetion = [HMEmoticonsManager shareManager].emotionSections[section];~~ return categoryScetion.emoticons.count;~~ }~~ - (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath~~ {~~ HMEmoticonCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:[HMEmoticonCell identifier] forIndexPath:indexPath];~~ HMEmoticonSection *categoryScetion = [HMEmoticonsManager shareManager].emotionSections[indexPath.section];~~ HMEmoticon *emoticon = categoryScetion.emoticons[indexPath.item];~~ cell.emoticon = emoticon;~~ return cell;~~ }~~ ~~ #pragma mark - UICollectionViewDelegate~~ - (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath~~ {~~ HMEmoticonSection *categoryScetion = [HMEmoticonsManager shareManager].emotionSections[indexPath.section];~~ HMEmoticon *emoticon = categoryScetion.emoticons[indexPath.item];~~ HMEmoticonSection *nearSection = [HMEmoticonsManager shareManager].emotionSections[0];~~ BOOL contain = NO;~~ for (HMEmoticon *oldEmoticon in nearSection.emoticons) {~~ if ([oldEmoticon.chs isEqualToString:emoticon.chs] ||~~ [oldEmoticon.emoji isEqualToString:emoticon.emoji]) {~~ contain = YES;~~ break;~~ }~~ }~~ if (!contain) {~~ [nearSection.emoticons removeObjectAtIndex:nearSection.emoticons.count - 2];~~ [nearSection.emoticons insertObject:emoticon atIndex:0];~~ [self.emoticonView reloadData];~~ }~~ if ([self.delegate respondsToSelector:@selector(emoticonsController:emoticon:)]) {~~ [self.delegate emoticonsController:self emoticon:emoticon];~~ }~~ }~~ ~~ - (IBAction)emoticonToolbarClick:(UIBarButtonItem *)sender~~ {~~ NSUInteger count = 0;~~ // Emoji = 2~~ for (int i = 0; i < sender.tag; i++) { // 0 1~~ NSNumber *currentSectionCount = [HMEmoticonsManager shareManager].categroySections[i];~~ count += currentSectionCount.intValue; // 7~~ }~~ CGRect rect = self.emoticonView.frame;~~ rect.origin.x = count * rect.size.width;~~ [self.emoticonView scrollRectToVisible:rect animated:YES];~~ }~~
- 阅读性差
3.应用注释的目的和应用场景
- 常见用法一(解释代码):
~~ - (UIBarButtonItem *)initWithNorImage:(NSString *)norimage higImage:(NSString *)higImage title:(NSString *)title target:(id)target action:(SEL)action~~ {~~ // 1.创建一个按钮~~ UIButton *btn = [[UIButton alloc] init];~~ // 2.设置按钮的默认图片和高亮图片~~ if (norimage != nil &&~~ ![norimage isEqualToString:@""]) {~~ // 图片不为空~~ [btn setImage:[UIImage imageNamed:norimage] forState:UIControlStateNormal];~~ }~~ if (higImage != nil &&~~ ![higImage isEqualToString:@""]) {~~ // 图片不为空~~ [btn setImage:[UIImage imageNamed:higImage] forState:UIControlStateHighlighted];~~ }~~ // 设置标题~~ [btn setTitle:title forState:UIControlStateNormal];~~ ~~ // 3.监听按钮的点击事件~~ [btn addTarget:target action:action forControlEvents:UIControlEventTouchUpInside];~~ // 4.设置按钮的frame~~ // 可以调用控件的sizeToFit方法来自动调整控件的大小~~ [btn sizeToFit];~~ ~~ // 5.根据按钮创建BarButtonItem~~ return [[UIBarButtonItem alloc] initWithCustomView:btn];~~ }
- 常见用法二(做函数说明):
~~ /**~~ * 创建item~~ *~~ * @param norimage 默认状态的图片~~ * @param higImage 高亮状态的图片~~ * @param title 标题~~ *~~ * @return 创建好的item~~ */~~ - (UIBarButtonItem *)initWithNorImage:(NSString *)norimage higImage:(NSString *)higImage title:(NSString *)title target:(id)target action:(SEL)action~~ {~~ // 1.创建一个按钮~~ UIButton *btn = [[UIButton alloc] init];~~ // 2.设置按钮的默认图片和高亮图片~~ if (norimage != nil &&~~ ![norimage isEqualToString:@""]) {~~ // 图片不为空~~ [btn setImage:[UIImage imageNamed:norimage] forState:UIControlStateNormal];~~ }~~ if (higImage != nil &&~~ ![higImage isEqualToString:@""]) {~~ // 图片不为空~~ [btn setImage:[UIImage imageNamed:higImage] forState:UIControlStateHighlighted];~~ }~~ // 设置标题~~ [btn setTitle:title forState:UIControlStateNormal];~~ ~~ // 3.监听按钮的点击事件~~ [btn addTarget:target action:action forControlEvents:UIControlEventTouchUpInside];~~ // 4.设置按钮的frame~~ // 可以调用控件的sizeToFit方法来自动调整控件的大小~~ [btn sizeToFit];~~ ~~ // 5.根据按钮创建BarButtonItem~~ return [[UIBarButtonItem alloc] initWithCustomView:btn];~~ }
4.注释的特点
- 注释是写给人看的,不是给计算机看的。计算机怎么可能看得我们写的中文。因此当编译程序的时候,并不会将注释编译到.o目标文件中
- 从.o文件的大小可以间接看出注释后的代码并没有被编译
- 检查代码的作用
- 排除错误
- C for ios --- 标识符与注释
- ios开发-C语言关键字、标识符、注释、数据类型等学习
- IOS之C语言--1关键字、标识符和注释
- C语言 关键字、标识符、注释
- 【黑马程序员】iOS学习之路——C语言之关键字、标识符、注释
- iOS学习笔记之-C语言基础02(关键字、标识符、注释、数据类型)
- 【C语言】03-关键字、标识符、注释
- 【02-C语言】03-关键字、标识符、注释
- C语言中注释、标识符以及关键字
- C语言关键字、标识符和注释
- C语言入门教程3-关键字、标识符、注释
- C语言入门:03.关键字、标识符、注释
- C 语言第一课---关键字、标识符、注释
- 01.C语言关键字、标识符和注释
- C语言关键字、标识符和注释
- c 语言变量 注释,标识符,关键字
- 36 C语言标识符、关键字和注释
- 【JAVASE_学习笔记】标识符与注释
- 深度优先搜索,DFS,UVA572,连通分支数
- 【swift3实战】2048 教程(二)
- C#委托和事件详解
- debian网络ip设置
- Windows下Python机器学习环境搭建(pip numpy scipy matplotlib scikit-learn nltk)
- C for ios --- 标识符与注释
- ubuntu切换默认Python版本
- sql日期
- POJ 2409 Let it Bead (Polya)
- TensorFlow入门
- JAVA 获取某个时间段内所有的日期
- Android屏幕适配全攻略(最权威的官方适配指导)
- Effective STL: 将vector和string的数据传给历史遗留的C风格API
- qml之SwipeView