易截截图软件、单文件、免安装、纯绿色、仅160KB

c中 extern 和 static 困惑! - C/C++ / C语言

在file1.c中声明A的时候加了static,为什么在file.h中的f()函数还能够访问A的值????

//file1.c
#include <stdio.h>
#include "file.h"

static int A = 3;
void main() {
  f();
}

//file.h 头文件

#ifndef _FILE_H
#define _FILE_H

extern int A;

void f() {
printf("%d", A*3);
}

#endif




什么编译器?什么系统?
看看A的连接属性再说吧。(unix下可以用nm,windows下可以用dumpbin)

是windows下 vc6.0

那就dumpbin看看吧。vc经常做一些违背标准的事。

那就是编译器的问题了! 原则上本来是不能访问的!

可能还有一个全局的A


文件源码就是上面的这些!

应该有全局的A

extern int A;
有了这句应该就可以访问吧

当然是可以访问的。
因为file.h是被file1.c #include 的,在同一编译单元内,自然可以访问到file1.c里的
static int A = 3;

C/C++ code:

/* 用nm可以帮助理解三种不同的形式的变量说明:*/

int x; /* C (Common) 声明(可能同时也定义)变量, 到了链接阶段, */
/* 1. 如果没在其他模块发现同名(D)符号,作为未初始化的全局变量, 放在BSS */
/* 2. 如果有在其他模块发现同名(D)符号,作为已初始化的全局变量, 放在数据段 */
int y = 1; /* D (Data) 定义变量,作为已初始化的全局变量, 放在数据�


相关问答:

C/C++里屏shift+f10键要怎么写! - C/C++ / C++ 语言

SHIFT加F10与那个键右ctrl边上的那个键功能一样,想屏这个
但不知要怎么写那个组合键!
有没哪个大侠放一段这个的代码或写一段
http://topic.csdn.net/u/20090609/15/7dc9fb70-243f-4070-9cfd-34e48b66e6c6.html ......

C/C++中有没有格式化U盘的函数 - C/C++ / C++ 语言

大家好:
我想实现检测到插入SD卡后自动将SD卡格式化的功能,不知C/C++中有没有格式化U盘的函数?
另外,我不想使用SHFormatDrive,因为这个函数会弹出是否要格式化的提示框,我需要的是系统自动格式化,而操作者� ......

c静态编译另一个文件夹的库函数 - C/C++ / C语言

在根目录/lib中存放一个log.c,log.h,并用下面的语句:
gcc -c log.c
ar crv liblog.a log.o
编译出一个liblog.a静态库,然后在文件夹:/testfile中创建一个test.c和testc.c,test.c中引用了testc.c中定义的方法 ......

visual c++2008不能编译C程序吗 - C/C++ / C语言

visual c++2008速成版,不能编译C程序吗?如果能是怎么开始的啊?用它带的命令提示单元除外 。
新建工程(空工程或win32控制台)

绝对可以。建立win32控制台程序就可以

引用
新建工程(空工程或win32控制台� ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号