欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

C語言調試中出現(xiàn)的一些莫名其妙的問題-創(chuàng)新互聯(lián)

  1. 定義一個全局變量service_port,并附初值,在使用時總是莫名奇妙的變化成另一個值,其他地方沒有任何的修改,原因沒找到,但是在定義前加上const關鍵字修飾即可解決該問題。

    赫山網站制作公司哪家好,找成都創(chuàng)新互聯(lián)公司!從網頁設計、網站建設、微信開發(fā)、APP開發(fā)、成都響應式網站建設等網站項目制作,到程序開發(fā),運營維護。成都創(chuàng)新互聯(lián)公司成立與2013年到現(xiàn)在10年的時間,我們擁有了豐富的建站經驗和運維經驗,來保證我們的工作的順利進行。專注于網站建設就選成都創(chuàng)新互聯(lián)公司。
  1. 定義一個全局變量static uint8_t simulation_value=0;,并附初值,但是其他地方有修改++,但是在進行其他操作時,該變量會變成并不是預期的值。當在定義時static uint8_t simulation_value,并不賦初值,即可解決該問題。

對于該問題,在網上找了其他高手的一些解釋:

一、簡單的講一下原理。在嵌入式系統(tǒng)中,全局變量的初始化是在系統(tǒng)啟動的過程中來做的。做法其實很簡單,就是把外存(ROM或Flash等存放CODE的介質)中的全局變量空間拷貝到內存中的全局變量空間映像中。如果沒有這一步正確的從外存到內存的拷貝工作,你的全局變量是沒有初始化值的。

編譯器如果沒有生成這步代碼,那你的全局變量就都是沒有辦法初始化的。

用const為啥能解決問題呢?因為const型的變量被Keil直接放到了外存中,也就是放到了代碼段中。以后使用const實際不是訪問內存而是外存!

現(xiàn)在說你的全局變量初始化的問題解決方案:

1. 研究編譯結果,看全局變量的初值被放在了code段的哪個位置,以及全局變量在內存中的位置定義,然后在初始化過程中——進入main函數之前,把這些值拷貝過來。因為編譯器是按照段來處理全局變量的,所以所有全局變量的相對位置都是一一對應的,用memcpy就可以了。

2. 不要在全局變量中這樣初始化,而是通過函數來初始化,在main函數的開頭用init函數來初始化所有的全局變量。

二、哪個大師說過的一句話,程序中莫名其秒的變量問題[無論局部還是全局],大都是數組越界造成的!

你是否還在尋找穩(wěn)定的海外服務器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調度確保服務器高可用性,企業(yè)級服務器適合批量采購,新人活動首月15元起,快前往官網查看詳情吧

網站題目:C語言調試中出現(xiàn)的一些莫名其妙的問題-創(chuàng)新互聯(lián)
轉載注明:http://chinadenli.net/article42/decphc.html

成都網站建設公司_創(chuàng)新互聯(lián),為您提供網站制作、虛擬主機、手機網站建設、關鍵詞優(yōu)化、網站營銷、外貿網站建設

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

外貿網站制作