C/C++ head file与c++ source file在vc编程使用时有啥区别啊 举几个例子可以不?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C/C++ head file与c++ source file在vc编程使用时有啥区别啊 举几个例子可以不?相关的知识,希望对你有一定的参考价值。
c++ source file不可以在里面编C程序吧……
没有区别!我这样说可能很多人都不同意,但是head file 和sourefile只是后来人为的分开的,主要是为了方便大型的编程。比如你写一个很小的hello world程序你的head file 和source file都放起,编译的时候一起编译。假如你无聊你可以把它们分开用include<>包含,编译的时候,编译器还是会把headfile粘贴到sourcefile前面,再一起编译,所以说它们两者是没什么区别的,只是在人的逻辑上区分,编程时比较有头绪而已。 参考技术A 一个是头文件,一个是源文件。头文件不参与编译,由预处理器把相应内容复制进来,只有源文件参与编译活动。c++ source file可以编译c程序,因为c++向上兼容c语言。
补充一下:头文件的核心任务是“声明”,楼主可能对头文件、编译、链接等内容不是很了解,三言两语我也讲不出来,推荐一本书给你《程序员的自我修养-链接、装载与库》,可以下载PDF电子版。 参考技术B 给你举个例子 吧 比如说 你想给你同学看一个程序,你可以给他看你声明了哪些函数,但是你不想给他看函数实现的代码,那么怎么办呢,你就把你的头文件扔给他,源文件就不用给他了。 参考技术C head 是写类的吧,soource是住程序开始的地方吧
如何在C语言中调用C++做的动态链接库
参考技术A链接库头文件:
head.h
class A
public:
A();
virtual ~A();
int gt();
int pt();
private:
int s;
;
firstso.cpp
#include <iostream>
#include "head.h"
A::A()
A::~A()
int A::gt()
s=10;
int A::pt()
std::cout<<s<<std::endl;
编译命令如下:
g++ -shared -o libmy.so firstso.cpp
这时候生成libmy.so文件,将其拷贝到系统库里面:/usr/lib/
进行二次封装:
secso.cpp
#include <iostream>
#include "head.h"
extern "C"
int f();
int f()
A a;
a.gt();
a.pt();
return 0;
编译命令:
gcc -shared -o sec.so secso.cpp -L. -lmy
这时候生成第二个.so文件,此时库从一个类变成了一个c的接口.
拷贝到/usr/lib
下面开始调用:
test.c
#include "stdio.h"
#include "dlfcn.h"
#define SOFILE "sec.so"
int (*f)();
int main()
void *dp;
dp=dlopen(SOFILE,RTLD_LAZY);
f=dlsym(dp,"f");
f();
return 0;
编译命令如下:
gcc -rdynamic -s -o myapp test.c
运行Z$./myapp
10
$
以上是关于C/C++ head file与c++ source file在vc编程使用时有啥区别啊 举几个例子可以不?的主要内容,如果未能解决你的问题,请参考以下文章
谁知道怎么用c++实现c/s远程关机命令,需要在下面的代码中添加啥