close

康沃爾文翻譯

    p2會放在【RAM】內,它指到【FLASH】內的某個處所,那個地方是【16bit】。

    const int * const p4;

    另外當一顆星星(pointer)呈現的時辰,還沒有特別告訴compiler型態,此時就會以預設值替換,一般來說【預設值是ram】,留意有些cpu比力複雜,就不會只有ram這樣純真,可能是internal sramexternal 16bit ram或是external sdram這些比力複雜的可能性發生。

    p1會放在【RAM】內,它指到某個【16bit】的地方,誰人處所在【FLASH】。

    假定此時用一個16bit addresscpu,有RAM,有FLASH,假定int是指16bit變數,const是指FLASH的空間,注意這不是絕對。

    知道是什麼意思了吧!p4會放在FLASH,它指到的某個16bit的地方,那個地方是flash

    (2)這【全部器材】是int...(3)

    (1)這【全部器械】是constp3放在flash...(2)

    有一塊記憶體叫p2....(1)

    (1)這【整個器材】是pointerp1預設RAM...(2)

    int const * p2;

 

    注意【全部東西】,例如(3)式,它的所謂全部工具,是包含(2)(1)的,其餘類推。

    int * const p3;

    (3)這【整個器械】是int

    const int * p1;

    (2)這【全部東西】是pointer...(3)

    解決這個問題前,先知道一下C語言的定名邏輯,若是我沒有記錯,C語言是【前面的】形容【後面的】【後面的優先被compiler處置】,例如:

    int const * const p5】,所以p5功能同p4

        int const * p2;

   

    上述的意思就是:【有一塊記憶體叫var,它的型態是int】,這個基本邏輯知道後,就能夠解答前面的問題了。

        const int * p1;

        int * const p3;

    所以看一下另一個宣告:

    p3比較特別,放在FLASH內,指到RAM,究竟這樣有什麼用呢?例如有一個動態字串要顯示,很明顯的,內容要放在RAM,程式固定在某個地方抓資料,所以位址存在FLASH內即可,可以省點RAM的空間,或許有人認為才2bytes有什麼好省的,但是如果是顯示多國語言字型,有好多的pointer要存,就有差別了翻譯

    p1翻譯社p2,p3事實差別在哪裡呢?這個處所課本也不太講,網路上也有一些新鮮的诠釋,天成翻譯公司的不一定對,只是一個看法罷了翻譯

    有一塊記憶體叫p1....(1)

    以一個沒有迥殊設定的compiler來講

 

    (2)這【全部器材】是const...(3)

    可以想一想看,如果字型資料是放在NAND FLASHHDD,甚至是SD CARD中,那該怎麼辦呢?

    給個結論,p1p2的功能會一樣翻譯

    (3)這【全部器械】是int

    (3)這【全部工具】是const

    有一塊記憶體叫p3....(1)

   

    p3會放在【FLASH】內,它指到的某個【16bit】的地方,那個地方是【RAM翻譯

   

    (1)這【整個器材】是pointerp2預設放在RAM...(2)

        int var;

    怎麼用呢?以上面那個多國語言字型為例,一般來說,字型資料是點矩陣資料,必定是放在FLASH內,所以要寫出一個embedded程式可以自由控制變數該放哪裡,要會做這些雜事,不要過度依賴compiler預設動作,那是不可靠的,乃至是兩顆星星以上的pointer都要會,連void*也要會翻譯



本文出自: http://blog.udn.com/cchahacaptain/2558760有關各國語文翻譯公證的問題歡迎諮詢天成翻譯公司02-77260931

arrow
arrow
    文章標籤
    翻譯社
    全站熱搜
    創作者介紹
    創作者 normano1jr3 的頭像
    normano1jr3

    mattheflodux

    normano1jr3 發表在 痞客邦 留言(0) 人氣()