68精品久久久久久欧美,最近中文字幕完整在线看一,久久亚洲男人天堂,最近中文字幕完整视频高清1

你好!歡迎來到深圳市穎特新科技有限公司!
語言
當(dāng)前位置:首頁 >> 技術(shù)中心 >> 單片機(jī)入門 >> 對于GCC警告選項(xiàng)的理解

對于GCC警告選項(xiàng)的理解

關(guān)鍵字:GCC 作者: 來源: 發(fā)布時(shí)間:2019-07-31  瀏覽:28

 GCC警告選項(xiàng)對我們及時(shí)找出代碼中BUG,改善代碼品質(zhì)很有幫助。

聽說高手們對每個(gè)警告選項(xiàng)都很熟悉,能靈活運(yùn)用各個(gè)警告選項(xiàng)來分門別類地過濾代碼中的BUG信息。

1

../SRC/libpjmacl/pjmacl_jaccmd.c:1661: 警告: dereferencing type-punned pointer will break strict-aliasing rules

pjmacl_free((void**)&cmn_ofs_rg_p);

PjmAclComnAndOfsList_t *cmn_ofs_rg_p = NULL;

2

../SRC/libpjmacl/pjmacl_pjm.c:332: 警告: assignment from incompatible pointer type

data_p = (PjmAclPrioAddr_t *)calloc(1, sizeof(PjmAclPrioAddr_t))

uint64_t *data_p;

3

../SRC/libpjmacl/pjmacl_pjm.c:2867: 警告: no previous declaration for ‘pjmacl_get_node_pri_U’

pjmacl_get_node_pri_U如果為外部函數(shù)的話,就應(yīng)該有個(gè)聲明加到類似pjsd_prt.h中

4

../SRC/libpjmfep/pjmfep_exec.c:406: 警告: implicit declaration of function ‘pjmfep_evc_queue_init’

../SRC/libpjmfep/pjmfep_exec.c:406: 警告: nested extern declaration of ‘pjmfep_evc_queue_init’

‘pjmfep_evc_queue_init’函數(shù)就沒有被聲明過,而且如果定義文件和引用該函數(shù)文件不一樣時(shí),引用該函數(shù)的文件也沒有提前用extern 聲明該函數(shù)

5

../SRC/pjmd/pjmd_conff.c:1053: 警告: passing argument 1 of ‘set_rscGrpNode_type4’ discards qualifiers from pointer target type

const char *str_p,

set_rscGrpNode_type4(str_p, &rscgrp_p->group_info.nodeinfo);

static int set_rscGrpNode_type4(char* strwk, NodeRscInfo_t* info_p)

6警告選項(xiàng)中關(guān)注那些引用未初始化值的語句

7 變量定義時(shí),就最好初始化一下,省得到GCC 警告信息里刷數(shù)據(jù)

8:警告信息過于嚴(yán)格,有些警告信息就不是BUG了。比如調(diào)用函數(shù)中實(shí)參是&aa,這時(shí)這個(gè)指針就失去了具體的類型

dereferencing type-punned pointer will break strict-aliasing rules

call_ret = cmdlib_pjmcall(PJMCMD_CMD_PADLINE, &reqbufinf, buf_num, NULL, NULL, NULL, &exitval, &retval, (char **)&padlresp_p, &respsize, &resptype, clst_p);

中的(char **)&padlresp_p 就會(huì)產(chǎn)生上述警告信息

而&exitval 會(huì)產(chǎn)生

類似passing argument 1 of 'pjmd_pjsutil_rscunit_name2id' discards qualifiers from pointer target type的警告信息提示

dereferencing type-punned pointer will break strict-aliasing rules警告信息跟優(yōu)化選項(xiàng)-fstrict-aliasing 有關(guān)。當(dāng)開啟這個(gè)優(yōu)化選項(xiàng)時(shí),可能優(yōu)化會(huì)導(dǎo)致源代碼中部分語句缺失,而造成系統(tǒng)工作不正常,所以就所有的違反strict-aliasing rules原則的地方加了條這個(gè)警告信息,提醒讀者檢查這個(gè)地方的代碼,看看是不是如果優(yōu)化后會(huì)導(dǎo)致部分語句工作不正常

同時(shí)這個(gè)信息提示還有另外一個(gè)目的,兩個(gè)不同類型的指針指向同一個(gè)地址時(shí),極有可能會(huì)導(dǎo)致代碼編寫出錯(cuò)(比如犯大小端的錯(cuò)誤,還有地址字節(jié)對齊的錯(cuò)誤),所以這個(gè)警告信息還有這一層的目的。

編輯:admin  最后修改時(shí)間:2019-07-31

聯(lián)系方式

0755-82591179

傳真:0755-82591176

郵箱:vicky@yingtexin.net

地址:深圳市龍華區(qū)民治街道民治大道973萬眾潤豐創(chuàng)業(yè)園A棟2樓A08

Copyright © 2014-2023 穎特新科技有限公司 All Rights Reserved.  粵ICP備14043402號-4

莱阳市| 岳普湖县| 寿阳县| 舟曲县| 福建省| 桂林市| 泾源县| 卓尼县| 阳原县| 竹北市| 盐池县| 西华县| 商河县| 即墨市| 武穴市| 镇宁| 望谟县| 沂水县| 南溪县| 斗六市| 通道| 夏河县| 武鸣县| 涟水县| 剑河县| 阿克陶县| 全南县| 体育| 朝阳县| 宁明县| 扎兰屯市| 丰城市| 铅山县| 滕州市| 铜鼓县| 灵石县| 方山县| 商丘市| 同德县| 阳泉市| 怀柔区|