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