qlzm0o0 发表于 2012-3-7 22:35:49

合并c/c++程序 要怎么做

本帖最后由 qlzm0o0 于 2012-4-4 00:04 编辑

请 问一下,可不可在不知道第二个程序的名字的情况下,把自己写的两个c或c++的程序合并为一个,我主要是想把第二个的"main()"去除并同时把第二个程序做为第一个程序的一个函数进行调用。
[*]删除

(我的目的是想把我自己写的练习都串起来,但我写程序时名字都是乱起的,现在想不起来了。)

wAterLoo 发表于 2012-3-7 23:02:41

可以的

A.c
#include <stdio.h>
void say();      //注意这是文件Bsay()函数的引用声明,不能少
int main(int argc, char * argv[])
{   
    say();
    return 0;
}

B.c
#include <stdio.h>
void say()
{
    printf("hello,world!");
}

通过这种方式,你可以在main方法里面调用以前写的函数,不过要注意这些文件要在同一个目录下

仰望天上的光 发表于 2012-3-8 13:16:10

1楼误解楼主的意思了.
LZ说的可以办到,可以在当前程序中开个子进程,让字进程执行之前的exe程序.
显然在这个描述中出现了"进程"这个很难理解的概念,我觉得与其去了解进程的概念和调用子进程的办法,不如按照1楼的办法把main函数的名字改了.

qlzm0o0 发表于 2012-3-10 00:42:43

大侠们,可以说的再具体些吗,我的基础不是很好,在这里谢谢了.

wAterLoo 发表于 2012-3-10 17:45:52

你把你的个文件上传上来,我帮你改

qlzm0o0 发表于 2012-3-11 17:37:41

仰望天上的光 发表于 2012-3-8 13:16 static/image/common/back.gif
1楼误解楼主的意思了.
LZ说的可以办到,可以在当前程序中开个子进程,让字进程执行之前的exe程序.
显然在这 ...

请问一下,你所说的进程在什么地方可以找到教材,我买了FISHC光盘,发现相当的有价值,只是不知道这个进程是在哪个教学里的,我会找到自己学的,谢谢. 麻烦告诉我一下.

qlzm0o0 发表于 2012-3-11 17:42:21

wAterLoo 发表于 2012-3-10 17:45 static/image/common/back.gif
你把你的个文件上传上来,我帮你改

谢谢,我还没写程序呢,根本就不知道怎么写,而且目录里乱死了{:5_96:}好烦啊!!

仰望天上的光 发表于 2012-3-11 19:34:26

qlzm0o0 发表于 2012-3-11 17:37 static/image/common/back.gif
请问一下,你所说的进程在什么地方可以找到教材,我买了FISHC光盘,发现相当的有价值,只是不知道这个进程是在 ...

计算机实际上在同时运行很多的程序,进程使得这些程序中的每一个都“以为”整个计算机都是被自己独占访问的。称每个程序都是在一个进程中运行的。你可以认为进程用虚拟的方式模拟了计算机。这样,原本只有一台物理计算机,但由于同时存在许多进程,就存在许多的"虚拟计算机",每个"虚拟计算机"上运行一个程序。
至于深入的教程,建议楼主现阶段不必了解。

qlzm0o0 发表于 2012-3-12 21:23:02

仰望天上的光 发表于 2012-3-11 19:34 static/image/common/back.gif
计算机实际上在同时运行很多的程序,进程使得这些程序中的每一个都“以为”整个计算机都是被自己独占访问 ...

我知道你说的这些,但这根我想要编的程序好像不是很对题,我只想做个类似数据库一样的程序把我的练习整理出来,也就是用一个程序删除我所做的C/C++程序的main()并同时把他们存放在一个或几个目录下。只是我想把他们全部都放在同一个大的程序里。

我不知道用什么方法可以删除main()这个东东。谢谢老师这么细心。我平时感觉做程序的人有点冷冰冰,不过老师让我感觉还是满有人情味的。{:7_178:}

刺客信条 发表于 2013-6-6 15:48:42

长长见识。。。。。。。。

冰、释。蓝 发表于 2013-7-2 14:32:38

int book_id_test( int id )//这里用bool要加头文件 1表示true 0表示false
{
      struct book * p = head;
      for ( p = head; p; p = p->next )
      {
                if ( p->book_id == id )
                        return 1;
      }
      return 0;
}

void add_book()                           //添加图书信息
{

    struct book *asd;
    asd = (struct book*)malloc(sizeof(struct book));
      printf("请输入书籍编号:\n");
      scanf("%d",&(asd->book_id));
      printf("请输入书籍名称:");
      scanf("%s",asd->book_name);
      printf("请输入书籍作者名字");
      scanf("%s",asd->book_writer);
      while ( book_id_test( asd->book_id ) )
      {
                printf( "输入id以存在请重新输入" );
                fflush( stdin );
                printf("请输入书籍编号:\n");
                scanf("%d",&(asd->book_id));
                printf("请输入书籍名称:");
                scanf("%s",asd->book_name);
                printf("请输入书籍作者名字");
                scanf("%s",asd->book_writer);
      }

    asd->next = NULL;

    if(head == NULL)
    {
      head = asd;
    }
    else
    {
      asd->next=head;
      head=asd;
    }
    return;
}

冲啊大笼包 发表于 2016-11-13 09:45:15

{:10_250:}{:10_250:}

Damn_it 发表于 2016-11-24 15:07:21

不知道名字是什么意思.........
假设有A.c, B.cpp两个文件,可以将A.c做成A.h头文件包含到B.cpp的工程下, 如:
在B的工程中
#include "A.h"
extern "C"
{
A.c
}
..........
extern "C" {}的作用是告诉C++的编译器以C的方式进行编译,记住只能在C++编译中这样做,因为C++兼容C
{:10_254:}
页: [1]
查看完整版本: 合并c/c++程序 要怎么做