簡體   English   中英

使用字符指針存儲整數

[英]Store integer using character pointer

我有一個字符指針,需要使用此指針在內存中存儲2個字節的值。 試過這個

*dataConfigured =  configuredParameterCount;   
*++dataConfigured =  configuredParameterCount << 8; 

除此之外,還有其他更好的代碼嗎?

假設:

char dataConfigured[2];
uint16_t configuredParameterCount = 4711;

你可以做:

memcpy(dataConfigured, &configuredParameterCount, sizeof(dataConfigured));

如果你有

char* dataConfigured = ..;
short data = 123;

你可以做

*((short*)dataConfigured) = data;

小心-您需要確保保留足夠的內存。

假設configuredParameterCount的類型很short (2個字節),則只需執行此操作

*((short*)dataConfigured) = configuredParameter;

但是,請確保由dataConfigured指向的dataConfigured具有足夠的空間。

正如@Calvin指出的那樣,這可能會在某些計算機體系結構上引起問題(盡管它可以在大多數常見的體系結構上運行,例如x86和x64)。 但是,如果要在所有體系結構上使用memcpy是更安全的選擇(較慢但更安全)。

暫無
暫無

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

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