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

好神奇的 extern "C" 哦。。。

有关 extern "C"

搞过C和C++混编的同志们都知道这个啥意思。
这儿有讲:http://www.cppblog.com/Macaulish/archive/2008/06/17/53689.html

但看一下下面的这个代码:

#include <iostream>
using namespace
std;

extern "C" { int g_inta; }

int main (void)
{
g_inta = 1;
cout << g_inta << endl;

return 0;
}

你觉得g_inta定义了不?嗯。。。它已经被定义了,要不编不过去。。。

如果把
extern "C" { int g_inta; }换做
extern "C" int g_inta;
extern { int
g_inta; }
extern int g_inta;

再试试呢?嗯。。。这只是对外部变量的声明,而非定义,是编不
过去的。

就为这个折腾了半晌,最后看看这个:
http://book.51cto.com/art/200904/121028.htm


最后感谢刘合同学的激情参与,哈哈。。。


相关文档:

Linux下C/C++编译器gcc使用简介

1.gcc包含的c/c++编译器
gcc,cc与c++,g++
gcc和cc是一样的,c++和g++是一样的。一般c程序就用gcc编译,c++程序就用g++编译。
2.gcc的基本用法
gcc test.c:如果没有指定输出的文件,默认将编译出一个名为a.out的程序
gcc test.c -o test:-o参数用来指定生成目标程序的名字,这样将编译出一个名为test的程序。
3.为什 ......

一个Linux下C线程池的实现

什么时候需要创建线程池呢?简单的说,如果一个应用需要频繁的创建和销毁线程,而任务执行的时间又非常短,这样线程创建和销毁的带来的开销就不容忽视,这时也是线程池该出场的机会了。如果线程创建和销毁时间相比任务执行时间可以忽略不计,则没有必要使用线程池了。下面是Linux系统下用C语言创建的一个线程池。线程池 ......

c/c++内存划分

一、一个经过编译的C/C++的程序占用的内存分成以下几个部分:
  1、栈区(stack):由编译器自动分配和释放 ,存放函数的参数值、局部变量的值等,甚至函数的调用过程都是用栈来完成。其操作方式类似于数据结构中的栈。
  2、堆区(heap) :一般由程序员手动申请以及释放, 若程序员不释放,程序结束时可能由OS回收 ......

C Primer Plus 第11章 字符串和字符串函数 小结

一、字符串初始化方式
//第一种:大小确定的情况
char string1[10] = "I am a boy";
//第二种:自动计算大小
char string2[] = "I am a boy";
//第三种:初始化一个指针
char *string3 = "I am a boy";
//第四种:初始化一个指针数组
char *string4[10] = "I am a boy";
......

pro*c makefile 编写

该makefile 只是在linux 中测试过, 若采用hu-ux 只要以下makefile中的gcc 改为aCC  但
hu-ux 未测试
1、首先确定pro*c 工程目录结构
proc/bin
proc/include
proc/lib
proc/src
        src/libsrc
        src/project_src
 &n ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号