大头
标签云
3G
AWS
Android
BeautifulSoup
Boto
CC
DONT_MAKE_ME_THINK
DTV
DVB-T
Haskell
ISDBT
JUnit
LUdecomposition
Linux内核
MIPS
MiniBlog
Perl
PyInstaller
S3
SI
STM
Subtitle
UED
VideoDemystified
VideoResolution
audio
c/c++
cassandra
colorspace
colorspace VideoDemystified
compile
debug
dvb
eLocutor
format
fortran
gui
h.264
icon
interlaced
java
joke
kernel
linux
matlab
mono
ota
php
project
pyExcelerator
python
resource
ruby
spec
stb_design
stereo
svn
twitter
unicode
warning
书债
书托
交互设计
会议管理
信号量
出差
出版
勘误
反思
哲学
团购
团队
图书
图灵新知
培训
妈妈
娱乐
并发
弗洛伊德
微博
抑郁症
投诉
捉虫日记
改变心理学的40项研究
敏捷
敏捷开发的艺术
数学
数据库
新闻
森田心理疗法实践
森田正马
津巴多普通心理学
测试
烂书
用户体验
界面
瞬间之美
神经症
神经质症
科普
管理
精神病
精神病学
编译
编辑
翻译
药物治疗
设计
证实偏差
质量
逻辑
配置管理
重构
高良武久
分类
日历
十一月 | ||||||
---|---|---|---|---|---|---|
日 | 一 | 二 | 三 | 四 | 五 | 六 |
27 | 28 | 29 | 30 | 31 | 1 | 2 |
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
评论
留言
微博
热门文章
随机文章
豆瓣上谁关注这里
链接
搜索栏
RSS
功能
页面
计数器
482253
访客统计
存档
defined but not used
为了清除代码里定义不使用的变量,调整一下编译器的WarningLevel,原来是 -W (即-Wextra),编译无warning,已经在9月25日清除。
增加 -Wunused ,编译,出现1147个warning。把 -Wunused 改为 -Wunused-variable ,496个。
遇到这样一个问题,在一个 .h 文件中,定义了一个全局变量,还是 static 的,而它仅在两个宏定义中使用,代码如下:
-
static OS_ID db_v_mutex = OS_INVALID_ID;
-
#define DB_V_MUTEX_LOCK() \
-
do \
-
{ \
-
if(db_v_mutex == OS_INVALID_ID)\
-
{ \
-
db_v_mutex = os_mutex_create();\
-
ASSERT(db_v_mutex != OS_INVALID_ID);\
-
} \
-
os_mutex_lock(db_v_mutex, OS_WAIT_FOREVER_TIME);\
-
}while(0)
-
-
#define DB_V_MUTEX_UNLOCK() do{os_mutex_unlock(db_v_mutex);}while(0)
编译器报 db_v_mutex 定义了没有使用。想了一想,情况应该是这样,很多 .c 文件包含了这个头文件,有些 .c 文件使用了 DB_VIEW_MUTEX_LOCK() 和 DB_VIEW_MUTEX_UNLOCK() ,有些没有。用了的文件里不会有问题,没用的文件就会报warning。static 使 db_v_mutex 可以定义在头文件里被多个 .c 文件包含。
如果要解决这个问题,可以再定义一个宏。
-
#define USE_V_MUTEX_LOCK static OS_ID db_v_mutex = OS_INVALID_ID
需要使用 DB_VIEW_MUTEX_LOCK() 和 DB_VIEW_MUTEX_UNLOCK() 的地方加一行:
-
USE_V_MUTEX_LOCK;
此法为steedhorse提供,参考ATL的做法。