摘要: ANSI C 标准向 scanf() 增加了一种新特性,称为扫描集(scanset)。扫描集定义一个字符集合,可由 scanf() 读入其中允许的字符并赋给对应字符数组(类似于有过滤的%s)。扫描集合由一对方括号中的一串字符定义,左方括号前必须缀以百分号。例如,以下的扫描集使scanf()只读入由字符A、B和C组成的字符串:%[ABC]使用扫描集时,scanf()连续吃进集合中的字符并放入对应的字符数组,直到发现不在集合中的字符为止(即扫描集仅读取匹配的字符)。最终读入字符组成的字符串,并停止在与扫描集不匹配的位置。用字符^可以说明补集。把^字符放为扫描集的第一字符时,构成其它字符组成的命令的 阅读全文
posted @ 2013-01-15 17:57 qwertWZ 阅读(797) 评论(0) 推荐(0) 编辑
摘要: 简介 restrict是C99标准引入的,它只可以用于限定和约束指针,并表明指针是访问一个数据对象的唯一且初始的方式。即它告诉编译器,所有修改该指针所指向内存中内容的操作都必须通过该指针来修改,而不能通过其它途径(其它变量或指针)来修改。这样做的好处是,能帮助编译器进行更好的优化代码,生成更有效率的汇编代码。如"int *restrict ptr",ptr指向的内存单元只能被ptr访问到,任何同样指向这个内存单元的其他指针都是未定义的(即无效的)。restrict的出现是因为C语言本身固有的缺陷,C程序员应当主动地规避这个缺陷,而编译器也会很配合地优化你的代码。 一个C库中 阅读全文
posted @ 2013-01-15 00:08 qwertWZ 阅读(295) 评论(0) 推荐(0) 编辑