隨隨便便犯下的C語言錯誤

2021-10-20 19:18:39 字數 2028 閱讀 2957

指標指向的位址

結構體陣列在.**件中定義

#include

#include

intmain

(void

)return0;

}

變數沒有定義?因為資料型別uint8_t 新增了個括號,而(type)表示強制型別轉換,因此沒有定義就呼叫,導致報錯。

/* 資料列印函式指標 */

typedef

void

(*print_func)

(const

void*)

;void

int16_value_print

(const

void

* value)

;void

uint32_value_print

(const

void

* value)

;void

data_output

(print_func print,

const

void

* value)

/* 主函式 */

函式引數傳入的該是指標所指向的具體的位址,而非資料。同時位址處該存著有效的資料

在上面中,給指標賦值的-255 和 85536都會被認為是乙個位址,而且位址不能是個負值。

解決方法是給變數賦值,然後將指標指向變數的位址。

int16_t a =

-255

;uint32_t b =

85536

;int16_t

*s16_temp_val =

&a;uint32_t

*u32_temp_val =

&b;

#define string(s)  #s

typedef

enum

state;

typedef

struct

comparisoninfo;

comparisoninfo comparison_table=

,,,,

};

statemachine.o:statemachine.c:

(.data+

0x0)

: multiple definition of `comparison_table'

任何變數都不該寫在.**件中,但是我為了將用到的資料型別和函式相分開,就寫在了.h 檔案中

還遇到一種情況,狀態表是狀態機資料型別的一部分,若將其分別寫在.c 檔案和 .**件中,看起來也並不直觀。

解決方法是新增static , 將其宣告為區域性的

static comparisoninfo comparison_table[

]=

檔案和 .**件中,看起來也並不直觀。

解決方法是新增static , 將其宣告為區域性的

static comparisoninfo comparison_table[

]=

永遠都不要輕言放棄,因為沒有人會隨隨便便成功

實際上在這裡我要說的是nba的故事,nba是什麼地方,奇蹟發生的地方 以下出現的所有比賽資料都是我的記憶,沒有去考證,如果與實際資料有出入,請見諒 想當初喬丹高溫,感冒,但是在總決賽天王山之戰砍下37分,最後無力地倒在皮蓬的臂彎裡,傳為佳話 我們都知道喬丹的the shot,可是不知大家有沒有去關注...

不經歷風雨,怎麼見彩虹,沒有人能隨隨便便成功

1 好好規劃自己的路,不要跟著感覺走!根據個人的理想決策安排,絕大部分人並不指望成為什麼院士或教授,而是希望活得滋潤一些,爽一些。那麼,就需要慎重安排自己的軌跡。從哪個行業入手,逐漸對該行業深入了解,不要頻繁跳槽,特別是不要為了一點工資而轉移陣地,從長遠看,這點錢根本不算什麼,當你對乙個行業有那麼幾...

被專家被高手誤解背後 沒有人能隨隨便便成功

幾天前,乙個g市做家教的朋友通過qq聯絡我,他的 被k了,希望我幫他恢復 收錄。我粗略地看了一下這位朋友做了一年多的 seo的確有提公升空間,主要是內容貧乏,缺乏www.cppcns.com規律維護,除k站外,谷歌從未收錄,最多的搜尋引擎收錄量只有49條。外鏈推廣也不好,domain查詢數量也只有6...