[英]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.