相关疑难解决方法(0)

是否有可能有一个指针文字?

在C中,可以有一个字符串文字

char *string = "string here";
Run Code Online (Sandbox Code Playgroud)

整数文字:

uint8_t num = 5;
Run Code Online (Sandbox Code Playgroud)

长文字:

long long bigNum = 90322L; 
Run Code Online (Sandbox Code Playgroud)

浮点文字:

float decimal = 6.3f;
Run Code Online (Sandbox Code Playgroud)

这是一种指针文字的方法吗?这是内存空间的文字地址.我正在做一些嵌入式项目的工作,需要硬编码DMA访问的值.我正在做类似以下的事情:

uint32_t *source = 0x08000000;
Run Code Online (Sandbox Code Playgroud)

虽然这编译并正常工作,我得到以下编译器错误(我正在使用的变体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
Run Code Online (Sandbox Code Playgroud)

有没有正确的方法来做到这一点,或者我只需要接受这个作为C的事实?我知道我能做到:

uint32_t *source = (uint32_t *)0x08000000;
Run Code Online (Sandbox Code Playgroud)

但这似乎是非常不必要的.这样做的行业方式是什么?我也想知道C++中是否存在此功能.

c c++ pointers literals

9
推荐指数
1
解决办法
1822
查看次数

标签 统计

c ×1

c++ ×1

literals ×1

pointers ×1