小编bhu*_*ura的帖子

c语言中"#@"的用途是什么?

所述#符号被在预处理器指令(开始时使用#ifdef,#define等等).#也用作字符串化运算符.

## 是令牌粘贴操作符.

然后在网上测验我看到了这个:

#define MAKECHAR(operand) #@operand
Run Code Online (Sandbox Code Playgroud)

什么算子是#@什么,它用于什么?

c c-preprocessor

5
推荐指数
1
解决办法
175
查看次数

不是使用sizeof(type),而是使用sizeof * p,它安全又正确吗?

使用起来安全吗,此代码使用gcc 4.9.2编译,没有任何错误或警告

widget *p;
...
p = malloc(sizeof *p);
Run Code Online (Sandbox Code Playgroud)

我在SEI CERT C编码标准网站上找到了它。

单击此处 -没有类型不匹配的问题,无需强制转换。您每次分配正确的内存量。


struct widget;
typedef struct widget widget_t;

struct gadget;
typedef struct gadget gadget_t;

widget_t *newWidget(void)
{
    widget_t *p = malloc(sizeof *p);
    if (p) 
        /* initialize members of *p as necessary */
    return p;
} 

gadget_t *newGadget(void)
{
    gadget_t *p = malloc(sizeof *p);
    if (p)
        /* initialize members of *p as necessary */
    return p;
}

void deleteWidget(widget_t **p)
{
     /* delete any …
Run Code Online (Sandbox Code Playgroud)

c malloc

4
推荐指数
2
解决办法
115
查看次数

SPI 和 QPI(嵌入式)有什么区别?

在我的项目中,我使用Winbond W25Q64 64-MB 串行闪存,当我阅读该串行闪存的数据表时,有两种类型:

SPI(W25Q64 闪存 ID:- 0xEF4017)和 QPI(W25Q64FV 闪存 ID:- 0xEF6017)。

我很了解SPI,但是我第一次听说QPI。所以我有一些问题-

1.SPI和QPI有什么区别?

2.我可以使用QPI通信类型的Flash(使用SPI)吗?

3.QPI的主要特点是什么?QPI(通信协议还是其他协议)是什么?

microcontroller spi microchip nxp-microcontroller

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