小编Mic*_*hał的帖子

头文件中的静态const变量声明

如果我在头文件中声明静态const变量,如下所示:

static const int my_variable = 1;
Run Code Online (Sandbox Code Playgroud)

然后将这个标题包含在多个.c文件中,编译器会为每个文件创建新实例,还是"智能",足以看到它const并且只为所有文件创建一个实例?

我知道我可以将它设置为extern并在.c包含此标题的文件中定义它,但这是我不想做的.

c compilation header-files

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

如何获得2次提交之间的更改?

我试图获得2次提交之间的更改作者.

对我来说最好的是:

git diff --name-only master
Run Code Online (Sandbox Code Playgroud)

而不是

--name-only 
Run Code Online (Sandbox Code Playgroud)

参数如

--authors-only
Run Code Online (Sandbox Code Playgroud)

但不幸的diff是没有这样的.没有限制我必须使用diff命令,git log或其他人也没关系.

我需要责怪那些导致测试失败的人.

git author

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

如何使用主应用程序和引导加载程序中的一项功能?(嵌入)

首先我要说的是我开发基于 Cortex m4 的嵌入式设备应用程序。

我有引导加载程序和主应用程序常用的功能。现在我为引导加载程序和应用程序编译源文件两次。但我的双组 dfu 空间不足,我只想在 ROM 中使用这些功能一次。知道我怎样才能实现这个目标吗?

编辑:

在某些情况下使用函数指针可能存在危险,请检查我的问题 -使用指针函数 - 1 台设备上的 2 个独立应用程序

c bootloader dfu

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

宏的参数与结构域混合

所以我有这样的宏:

#define some_macro(param1)    \
static some_struct_t struct = \
{                             \
    .param1 = param1          \
}
Run Code Online (Sandbox Code Playgroud)

当我从main调用此宏时具有直接值:

some_macro(50);
Run Code Online (Sandbox Code Playgroud)

我收到一个错误:

..\..\main.c(185): error:  #29: expected an expression
Run Code Online (Sandbox Code Playgroud)

我找到了两种方法来解决它,第一种是在main中声明const值并传递给宏,第二种是更改参数的名称与宏中的相同.

所以它有效,但我没有造成错误.有任何想法吗?

c macros

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

标签 统计

c ×3

author ×1

bootloader ×1

compilation ×1

dfu ×1

git ×1

header-files ×1

macros ×1