繁体   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