问两道 C 面试题,高手帮看一下
1. 如下定义会有什么错误发生
//file1.c
int a[10];
//file2.c
extern int *a;
2. 大容量全局变量有什么危害,如
//file.c
int a[1000000];
注:此变量并非临时使用,而是从程序开始一直使用到程序结束
up
第一个问题可看下http://blog.chinaunix.net/u1/35100/showart_445864.html
往下拉到4.7,有详细解释的
恩,第一个比较明显,那么第二个呢,实在看不出有什么实质性的危害,总不至于是栈溢出吧
笔误,是堆溢出
int a[1000000]; ?你主机有多少内存够用的啊?就这么一个变量,直接4M的内存没了。
第一个重复定义。
//file1.c
int a[10];
//file2.c
extern a;
大容量全局变量,占用的内存不得释放,会使程序缓慢吧,猜测
说错了,是40兆。
我觉得可能有时没有那么多连续的内存单元。。。。
1. 如下定义会有什么错误发生
//file1.c
int a[10];
//file2.c
extern int *a; //这么写语法上没错误,但容易没看file1.c的人产生误解,以为a
相关问答:
为什么C写的DLL文件C、PB能调用VB不能调用?
VB里为什么有的DLL直接通过引用可以使用?有的需要通过declare申明外部函数?这些DLL有什么差别?
1、为什么PB能通过DECLARE声明而VB不行?
2、如果这个dll中的 ......
最近突然想自己来实现一个五子棋程序,但不知道怎么开始,自己也没学画图形函数,能在控制台下直接写吗>>>?????
控制台?比图形界面更麻烦。
http://search.download.csdn.net/search/%E4%BA%94%E5%AD%90% ......
'\108'作为字符常量对不对?
转义字符'\ddd'表示3位8进制所代表的字符。 但是108不是正确的8进制表示方法,因此应该是错误的。
但是char a='\108'; 为什么编译不出错呢?
\108 没超过 ......
背景:
--------
头文件db_method.h经过美化后存在下面几种结构定义类型
typedef struct
{
BYTE id;
BYTE idAsync;
DM_T dmInfo;
CHAR tbName[MAX_TBNAME_LEN];
} REC ......
有个winform程序,使用c#+mysql,需要在一个窗体设置mysql自动删除功能,包括自动删除多少天之前的数据以及是否开启自动删除功能,我程序退出后,还怎么控制Mysql自己删除啊?是不是要用mysql的event来实现?c#可以调用mysq ......