The C program language

原创 2015年07月08日 10:16:01

1. .h文件中慎定义static变量,否则每一个包含此.h的c文件都会得到一个独立的变量,这可能不是你想要的。

Example as below:

  a) 在.h中定义了一个锁DEFINE_MUTEX(runtime_lock), 在两个.c文件中通过此锁来保护临界资源;编译不通过,提示多处重复定义此变量;

  b) 看到此.h中定义了好多static变量,随手改为static DEFINE_MUTEX(runtime_lock),编译通过;调试,测试,stress测试,都没发现问题  ;

  c)一个月后,发现问题,debug,发现runtime_lock根本就没起到保护临界资源的作用(足足花了两天的时间,才发现到是锁没起到作用),再去看此锁的定义,发现问题所在;

  d)重新定义锁,在一个.c文件定义DEFINE_MUTEX(runtime_lock),在.h中申明extern struct mutex runtime_lock,解决问题。

Post-mortem:

  a) 不要想当然,当定义static等变量的时候,多想想;

   b)在.h文件中慎定义static变量,否则每一个包含此.h的c文件都会得到一个独立的变量,这可能不是你想要的。

版权声明:本文为博主原创文章,未经博主允许不得转载。

《The C programming language》学习笔记

Brian和Dennis的《c程序设计语言》(The C Programming Language)真不愧为c语言方面的经典书籍,薄薄的一本,却让人爱不释手,每次阅读都能有所收获。好记忆不如烂笔头,有...
  • u010418035
  • u010418035
  • 2015年04月15日 21:25
  • 1896

Codeforces Round #443 (Div.2) - C - Short Program

C. Short Program time limit per test 2 seconds memory limit per test 256 megabytes ...
  • w326159487
  • w326159487
  • 2017年10月27日 17:15
  • 339

Codeforces Round #879 (Div. 2) C. Short Program

题目链接:http://codeforces.com/contest/879/problem/CC. Short Programtime limit per test2 seconds memory...
  • yopilipala
  • yopilipala
  • 2017年11月15日 16:10
  • 116

[Windows Phone] Common Language Runtime detected an invalid program

今天打开Microsoft Visual Studio 2010 Express for Windows Phone,打开一个工程,双击xaml文件,发现无法打开界面编辑器了。出现以下错误: An ...
  • arui319
  • arui319
  • 2012年06月21日 10:19
  • 2972

《The C Programming Language》读书笔记总结 <一>.基础篇

写了这么多年的C代码,回过头来再看《The C Programming Language》这本书,作者Brian W. Kernighan和C语言之父Dennis M. Ritchie。感觉里面的知识...
  • Eastmount
  • Eastmount
  • 2015年10月21日 16:14
  • 2238

<<The C Programming Language>>学习之路-练习题参考答案 1-1

从今天开始系统将C圣经书>练习题全部做一遍,书已经看几遍了,自己感觉看多少遍也不如自己亲手做一遍,开始这段学习旅程吧,即使今年剩余的空余时间都做了这练习,也相信编程能力会有较大的飞跃吧。 由于目前家...
  • kuwaka
  • kuwaka
  • 2014年03月26日 23:37
  • 1013

《The C Programming Language》电子书下载

至于《The C Programming Language》这本书多么好,多么权威,我就不多说了,看过的人都知道。。。。  点击此处下载《The C Programming Language》 【...
  • pengqianhe
  • pengqianhe
  • 2012年09月25日 16:25
  • 5839

The C Program Language 第二版 专题(·1)

接下来的所有The C Program Language 第二版 课后习题 以及所有读书心得都会保存在这里。希望对想我一样的新手有帮助;也欢迎高手们指正。我会慢慢的往上传的...
  • leolee2000
  • leolee2000
  • 2011年07月03日 12:25
  • 799

zendloader安装

windows IIS+PHP5.3 zend_loader成功安装运行,PHP加密解密 很简单: 1、安装PHP(非线程安全 php-5.3.8-nts-Win32-VC9-x86.msi)时,...
  • martin2350
  • martin2350
  • 2012年09月19日 10:13
  • 2980

A new Program Language

1. Hello World! 2. Comments 3. Data Type     Big Number 4. Variables 5. Operator 6. Strings 7...
  • zhaomingzmhot88
  • zhaomingzmhot88
  • 2012年04月06日 16:14
  • 189
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:The C program language
举报原因:
原因补充:

(最多只允许输入30个字)