簡體   English   中英

嵌入式C:我是否可以傳遞靜態結構的成員以在另一個文件中運行,如果指向該成員的指針由同一文件中的fn傳遞

[英]Embedded C: Can I pass members of a static struct to function in another file, IF a pointer to the member is passed by a fn in the same file

我有這樣的結構:

typedef struct {

   uint8_t var_1;
   uint8_t var_2;

}TYPE_struct_variables;

static TYPE_struct_variables variables;

為了論證,我想將這個結構中的一個成員傳遞給另一個金屬層。 對於此示例,這是外部設備的數據結構,我想將成員' variables->var_1 '/' variables.var_1 '傳遞給主機微控制器的usart接口。 但是,我仍然希望限制對此文件外的所有函數的此結構的訪問。 如果該指針是由fn在與結構相同的文件中發送的,那么它是否可以發送指向該成員的指針?

或者當程序意識到它是一個“限制”空間內的指針時程序會崩潰嗎?

C本身對RAM中的受限空間一無所知。 如果將變量隱藏為靜態,則不會獲得外部鏈接。 這意味着它不會在其編譯單元之外有一個可以引用的符號,但它將在RAM或ROM中具有常規地址(如果您的架構支持並且變量是常量)並且該地址可供所有人訪問。

或者簡而言之:您可以將指針傳遞給靜態變量,方法與將指針傳遞給RAM中的其他變量或位置的方式相同。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM