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