c++和c语言中头文件里可以定义全局变量吗?

我在使用vs2017时在头文件里定义变量运行不了,但在dev c++里可以,这是由于软件应用的原因吗?

可以定义的,其他要使用的cpp文件要用extern 声明

好像不行吧,不然你多个cpp引用这个.h文件,不同的源文件都可以正常编译,但是两个地方存在相同的变量,导致编译器无法识别应该使用哪一个,就会出现链接错误。
如果你非要这么定义全局变量,那么我的建议是定义在源文件里面,然后在头文件里面使用extern关键字来使用该全局变量

VS2017可以在.h中定义全局变量。
可以把通用的结构体定义和全局变量放在一个独立的.h中,用到这些结构体定义和全局变量的就添加这个.h就可以了。