我可以用吗 。作为 gnu c 结构中的成员限定符

标签 c arm bare-metal

使用可以吗?作为 GNU c 中结构的成员限定符而不是符号 ->。当符号 . 时,编译器不会提示。用于代替 ->.

最佳答案

. 用于访问结构体的成员; -> 用于访问指向的结构的成员。后者取消引用指针,然后获取成员。因此 p->x 相当于 (*p).x。示例:

struct P {
    int x;
    int y;
};

struct P myP = {1,2};
struct P *p= &myP;

printf("%d, %d\n", myP.x, myP.y);   // prints 1, 2
printf("%d, %d\n", p->x, p->y);     // prints the same
printf("%d, %d\n", (*p).x, (*p).y); // is the same

关于我可以用吗 。作为 gnu c 结构中的成员限定符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54767268/

相关文章:

c - 在C中定义结构体数组?

c++ - 位设置问题

assembly - 如何在ARMv8中ERET到相同的异常级别?

c - 如何使用 ARM gcc 7.3 生成以下 arm 汇编程序输出?

c++ - 从 RISC-V 裸机程序调用 printf 系统调用时使用 C++ 模拟器失败

c - 从服务生成 GUI

c - 在静态数组的情况下,bss 的大小按意外字节递增

c++ - 如何将 c 数据类型转换为 neon 数据类型

gcc - Newlib:如何在链接器脚本中指定堆大小

qemu - 如何获取qemu机器 "virt"的PERIPHBASE?