1.static的使用

首先看一个函数:

int max_bank(void)
{static int max;int b = 0;struct dirent *de;DIR *d;
<pre name="code" class="cpp">    if (max)return max;d = opendir(BANKS);if (!d) {fprintf(stderr, "warning: cannot open %s: %s\n", BANKS,strerror(errno));return 0xff;}while ((de = readdir(d)) != NULL) {if (sscanf(de->d_name, "bank%u", &b) == 1)if (b > max)max = b;}closedir(d);return max;}

我们知道在第一次调用这个函数的时候,会将变量 max 初始化,以后再次调用这个函数的时候,变量 max 就不会被初始化了,而是保持着原有的值。原因是 static 类型的变量在函数结束后,并不释放这个变量所占用的内存。这和类中的静态成员变量有点类似。所以,我们看到这个函数利用这个特点对函数进行优化,没错,就是下面的代码:

    if (max)return max;

如果第二次调用这个函数的时候,就会直接返回 max ,而不用执行后面的代码了。
     2.fprintf和strerrno

在上面的函数中,最有意思的就是它的出错处理了,使用fprintf将错误信息输出到标准出错上,并且使用函数strerrno将错误代码转换为错误信息。

3.sscanf

sscanf函数用来从给定的字符串中提取数据,例如上面的例子中是从字符串“bankX”中提取数据,X代表一个数字。

4.sysconf

sysconf函数用来获取系统的相关信息。例如

int max_cpu = sysconf(_SC_NPROCESSORS_CONF);

用来获取系统中最大的cpu数目。

总结几个 C 语言知识点相关推荐

  1. 2017二级c语言成绩,2017全国计机等级考试二级C语言知识点超全整(打印版).docx

    2017全国计机等级考试二级C语言知识点超全整(打印版) 全国计算机 等级考试 目录 第一部分 公共基础知识 第 1 章 算法与数据结构1 HYPERLINK \l "_TOC_250068 ...

  2. C语言数字3转变字符 3 程序,大学c语言知识点总结

    大学c语言知识点总结 C语言的设计目标是提供一种能以简易的方式编译.处理低级存储器.产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言.一起来看看大学c语言知识点总结吧! 大学c语言知识点总 ...

  3. STM32中C语言知识点:初学者必看,老鸟复习(长文总结)

    说在前面的话 一位初学单片机的小伙伴让我推荐C语言书籍,因为C语言基础比较差,想把C语言重新学一遍,再去学单片机,我以前刚学单片机的时候也有这样子的想法. 其实C语言是可以边学单片机边学的,学单片机的 ...

  4. 二级考试c语言中 星号与字母 题型总结,2017年计算机二级考试C语言知识点归纳...

    2017年计算机二级考试C语言知识点归纳 计算机二级考试是全国计算机等级考试(National Computer Rank Examination,简称NCRE)四个等级中的一个等级,考核计算机基础知 ...

  5. c语言中字符占用的存储单元,C语言知识点第1章.doc

    C语言知识点第1章 C语言知识点总结(二) 第八节 字符字符常量定义:一对单引号括起来的一个字符.如'A'.'a'.'9'相应字符对应的ASCII编码值(见附录四)字符常量占用一个字节的存储单元(一个 ...

  6. c语言static知识点,C语言知识点集锦

    C语言知识点集锦 C语言作为一门非常适合编程入门的语言,打好基础的重要性不言而喻.下面整理了一些C语言知识点,希望对大家有所帮助! 知识点1:指针使用注意 Int *p只能指向int类型的数据 指针变 ...

  7. c语言二级考试知识点,2016年计算机二级考试C语言知识点大全

    2016年计算机二级考试C语言知识点大全 第一章 1)合法的用户标识符考查: 合法的要求是由字母,数字,下划线组成.有其它元素就错了. 并且第一个必须为字母或则是下划线.第一个为数字就错了. 关键字不 ...

  8. 江苏省计算机二级c语言复习知识点,计算机二级C语言知识点复习

    C语言已先后被移植到大.中.小及微型机上,它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序.下面是小编收集的关于计算机二级C语言知识点复习,希望 ...

  9. 计算机二级c语言考试总结,计算机二级考试C语言知识点总结 .doc

    计算机二级考试C语言知识点总结 (完全针对考试大纲) 概述 总体上必须清楚的: 1)程序结构是三种: 顺序结构 , 循环结构(三个循环结构), 选择结构(if 和 switch) 2)读程序都要从ma ...

  10. 嵌入式开发中的C语言知识点

    嵌入式开发中的C语言知识点 1.关键字 2.数据类型 3.内存管理和存储架构 4.指针和数组 5.结构类型和对齐 6.预处理机制 1.关键字 几乎每一门语言中都有关键字,具有特殊功能,C语言也不例外, ...

最新文章

  1. HTML 标签包含规范,规避脱标流,图片和文字垂直居中对齐,
  2. Android自定义ListView的Item无法响应OnItemClick的解决办法
  3. 重磅日程公布!与百名大咖在线交流技术,2天20个AI论坛不可错过
  4. WPF Multi-Touch 开发:高级触屏操作(Manipulation)
  5. split join append
  6. 开启文件高级共享功能
  7. UA OPTI570 量子力学26 无自旋的氢原子
  8. 【opencv】YUV各种色彩、YUV420sp2RGB
  9. SQLSERVER常用函数汇总
  10. Mysql中怎样设置指定ip远程访问连接
  11. python写入excel特定区域_Python读取Excel中符合特定条件的数据,并写入新的表格中...
  12. php测试系统登录超时,thinkphp后台检测用户登录超时的实现方法
  13. IOS程序之发送短信代码实现
  14. Trello使用向导
  15. (二)Nginx安装与配置
  16. 捕获浏览器关闭、刷新事件,在窗体关闭时从全局对象里移除当前用户
  17. GIS应用实例--模型预测、多元回归、空间自相关分析
  18. oracle otl,使用OTL操作Oracle数据库
  19. 什么软件可以测试手长,心率检测专家-可以让你通过按压手指检测出心率的健康app...
  20. EditPlus格式化xml文档

热门文章

  1. [转载] Python3 日历(Calendar)模块介绍
  2. ethtool---查看网卡
  3. Ecshop里添加多个h1标题
  4. 播放失败,请在设置中切换输出设备(后续)
  5. Codeforces Round#308
  6. mysql交互式连接非交互式连接
  7. nopcommerce笔记3 还可以控制什么
  8. .net mysql字符串截取_MySQL 字符串拆分操作(含分隔符的字符串截取)
  9. jupyter ipython display_ipython jupyter notebook中显示图像和数学公式实例
  10. ubuntu vscode_17. ubuntu设为服务器+vscode远程开发