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结构

开发C/S架构用各种语言的优缺点有啥?

关于C/C++里FILE的fwrite和fread怎么用。

谁知道怎么用c++实现c/s远程关机命令,需要在下面的代码中添加啥

XMLHttpRequest 无法加载 file:///C:/Users/hamma/Desktop/rao.html

C/C++实现文件读写操作