当前位置:  技术问答>linux和unix

关于makefile里面 两个源文件之间 使用全局变量的疑惑

    来源: 互联网  发布时间:2017-03-18

    本文导语:     C语言基础不牢固,请教各位一下:我的makefile工程里面链接有多个源文件,其中两个文件,假设是1.c 跟 2.c吧。如果我在1.c里面定义了一个全局变量 int a; 并且我想在2.c里面使用它,那么按说应该是用关键字e...

   C语言基础不牢固,请教各位一下:我的makefile工程里面链接有多个源文件,其中两个文件,假设是1.c 跟 2.c吧。如果我在1.c里面定义了一个全局变量 int a; 并且我想在2.c里面使用它,那么按说应该是用关键字extern吧,这样才是对应的同一个内存里面的变量吧。
   但是我发现如果在2.c里面不用extern,而是同样int a;结果是一样的,就是说我在2.c里面操作a,1.c里面的a也是跟着改变的。这是为什么?
   更奇怪的是,如果两个文件都用extern,而没有定义的话,结果还是一样的。

   简单代码如下:
1.c :
  int a;
  a++;

2.c :
  int a;
  printf(" %u ",a);

打印结果a是1;

能否深入的给我讲解一下是什么原理?

|
最好能贴出完整的代码和makefile,仅从你的描述来看,这个程序应该是要链接错误的。

|
你的程序是不可能通过的,链接阶段一定报重复定义。

|
你确定两个都是全局变量啊.

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • makefile里面环境变量LD_LIBRARY_PATH的问题
  • Makefile中的变量先使用后定义的问题
  • 如何在makefile中设置并读取环境变量
  • makefile 变量判空
  • makefile AIX export 变量传递失败
  • 如何显示makefile中变量的名字?
  • makefile变量高级用法的问题
  • 问下大家关于Makefile变量的问题
  • Makefile中引用变量时大括号和小括号有啥区别?
  • 关于makefile自动化变量的写法
  • makefile里的超长变量的拆分
  • Makefile 的if分支语句及变量赋值
  • 各位大侠,谁知道? 如何在makefile 中得到环境变量中路径,100分相送!!!!!
  • 帮忙看看makefile 中关于变量的条件赋值 的问题吧?不搞定我下周就死了
  • Makefile.in,Makefile.am,Makefile.bor应该怎么用?
  • makefile.am和makefile.in是什么文件,与makefile有什么联系吗?
  • 最近在学习linux C 看到了makefile部分,觉得makefile的语法很难理解,Makefile 的语法是不是shell语法?
  • 求解makefile问题,makefile.conf的作用?
  • 从网上载了个C++程序的源代码,包含38个.cpp和.h,还有makefile.in和makefile.am两个文件,但无configure和makefile.请问怎么编译?谢谢!
  • 有makefile.am,有 makefine.in 为什么就是没有Makefile?
  • makefile如何调用文件目录下的makefile
  • 请教根据Makefile.am自动生成Makefile的问题
  • 怎麼樣使Makefile.in生成Makefile?
  • 【急!】一个程序里有好多文件夹里都有Makefile,如何找到最管用的makefile
  • 【makefile使用】请问怎样在shell中获取makefile的最终目标?
  • unix下面make makefile文件,提示“makefile is up-to-date",怎么办呀?
  • Makefile使用遇到的问题!"Makefile:3:missing the separator.stop"在线等待.......
  • Makefile是如何输出执行的路径的,表示执行的是那个Makefile
  • 下的tar.gz源码里只有makefile.in和makefile.am
  • 一句 makefile 的解释 -- makefile 与 shel 结合
  • linux makefile error :Makefile:335: *** commands commence before first target。


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3