如果我在头文件中声明静态const变量,如下所示:
static const int my_variable = 1;
Run Code Online (Sandbox Code Playgroud)
然后将这个标题包含在多个.c文件中,编译器会为每个文件创建新实例,还是"智能",足以看到它const并且只为所有文件创建一个实例?
我知道我可以将它设置为extern并在.c包含此标题的文件中定义它,但这是我不想做的.
我试图获得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或其他人也没关系.
我需要责怪那些导致测试失败的人.
首先我要说的是我开发基于 Cortex m4 的嵌入式设备应用程序。
我有引导加载程序和主应用程序常用的功能。现在我为引导加载程序和应用程序编译源文件两次。但我的双组 dfu 空间不足,我只想在 ROM 中使用这些功能一次。知道我怎样才能实现这个目标吗?
编辑:
在某些情况下使用函数指针可能存在危险,请检查我的问题 -使用指针函数 - 1 台设备上的 2 个独立应用程序
所以我有这样的宏:
#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值并传递给宏,第二种是更改参数的名称与宏中的相同.
所以它有效,但我没有造成错误.有任何想法吗?