在C语言中,可以使用以下形式的字符串文字:>
char *string = "string here";
整数文字:
uint8_t num = 5;
长文字:
long long bigNum = 90322L;
浮点文字:
float decimal = 6.3f;
具有指针文字的方法吗?那是存储空间的字面地址。我正在嵌入式项目上做一些工作,需要对DMA访问的值进行硬编码。我正在做类似以下的事情:
uint32_t *source = 0x08000000;
虽然此程序可以编译并正常工作,但出现以下编译器错误(我使用的是
GCC
的变体:]
cc0144: {D} warning: a value of type "int" cannot be used to initialize an entity of type "uint32_t *" cc0152: {D} warning: conversion of nonzero integer to pointer
是否有执行此操作的正确方法,或者我只需要接受此作为C的事实?我知道我可以做到:
uint32_t *source = (uint32_t *)0x08000000;
但是这似乎非常不必要。行业上这样做的方式是什么?我也想知道C ++中是否存在此功能。
在C语言中,可以使用char * string =“ string here”形式的字符串文字;整数字面量:uint8_t num = 5;长文字:long long bigNum = 90322L;浮点文字:float ...
在C和C ++中,唯一的指针文字或常量为零。我们可以转到draft C99 standard部分6.3.2.3
Pointers
不,不是。这是因为文字是valid
在C ++中,您可以执行以下操作吗?