尔滨,后会有期!
喜欢尔滨的大蓝天、喜欢东北人民的豪爽热情、喜欢校园中不是那么卷的氛围。
后会有期啊!虽然,现在已经坐在工位上,在跑实验...
大雪人!
来哈尔滨四年了,第一回去打卡音乐公园的大雪人!
VSCode调试C++时cout/printf没有输出的解决方法
如果使用cout
,加上<< endl
就能在“终端”选项卡输出;
如果使用printf
,在格式串末尾加上\n
就能在“终端”选项卡输出;
在一个头文件中定义了enum后,引用该头文件,却无法使用定义好的enum的解决方案
省流版解决方案
- 假如定义了
enum BasicKind{Int, Float};
那么在声明变量的时候,不要忘记把enum
给带上!
BasicKind a; //错啦
enum BasicKind a;//对的
- 为头文件声明
enum
的地方的套一层typedef
就行,例如:
typedef enum Basickind
{
INT,
FLOAT
} Basickind;
背景
试图在一个头文件中定义若干enum
,然后在其他几个文件中使用。
最初根本没多想,直接梭哈:
semantic.h
文件如下:
enum Basickind
{
INT,
FLOAT
};
semantic.c
文件如下:
include "semantic.h"
...
Entry create_entry(Basickind kind){
^^^^^^^^^ 提示找不到Basickind
}
...
被引用的头文件里声明了Basickind
这种类型,但怎么就是报错,找不到呢?
解决方案
修改semantic.h
文件,为头文件声明enum
的地方的套一层typedef
,如下:
typedef enum Basickind
{
INT,
FLOAT
} Basickind;
原因
未知= =感觉很奇怪的样子
原来是自己一直用的不规范呜呜!!
不修改头文件的话,我们在声明enum
类型的变量时,还是应该要加上enum
的!!跟结构体是一个道理的!
include "semantic.h"
...
Entry create_entry(enum Basickind kind){
^^^^ ^^^^^^^^^ 这样就能找到啦
}
...