导航:首页 > 软件知识 > 如何调用c程序

如何调用c程序

发布时间:2022-02-10 10:17:05

1. C语言中如何调用子程序

例:

#include<stdio.h>

intsushu(intx)

{inti;

for(i=2;i<x;i++)

if(x%i==0)break;

if(i==x)return1;

elsereturn0;

}

main()

{inti,n=0;

for(i=2;i<=1000;i++)

if(sushu(i)==1)n++:

printf("n=%d",n);

}

(1)如何调用c程序扩展阅读

使用vfork()新建子进程,然后调用exec函数族

#include<unistd.h>

main()

{

char*argv[]={“ls”,”-al”,”/etc/passwd”,(char*)};

if(vfork()==0)

{

execv(“/bin/ls”,argv);

}else{

printf(“Thisistheparentprocess ”);

}

}

2. C语言如何调用函数

C语言中,函数调用的一般形式为:

函数名(实际参数表)

对无参函数调用时则无实际参数表。实际参数表中的参数可以是常数、变量或其它构造类型数据及表达式。各实参之间用逗号分隔。

#include<stdio.h>
intfun(intx,inty);//函数声明,如果函数写在被调用处之前,可以不用声明
voidmain()
{
inta=1,b=2,c;
c=fun(a,b);//函数的调用,调用自定义函数fun,其中a,b为实际参数,传递给被调用函数的输入值
}
//自定义函数fun
intfun(intx,inty)//函数首部
{//{}中的语言为函数体
returnx>y?x:y;//返回x和y中较大的一个数
}

(2)如何调用c程序扩展阅读

C语言中不允许作嵌套的函数定义。因此各函数之间是平行的,不存在上一级函数和下一级函数的问题。但是C语言允许在一个函数的定义中出现对另一个函数的调用。

这样就出现了函数的嵌套调用。即在被调函数中又调用其它函数。这与其它语言的子程序嵌套的情形是类似的。其关系可表示如图。

图表示了两层嵌套的情形。其执行过程是:执行main函数中调用a函数的语句时,即转去执行a函数,在a函数中调用b 函数时,又转去执行b函数,b函数执行完毕返回a函数的断点继续执行,a函数执行完毕返回main函数的断点继续执行。

3. c语言如何实现函数的调用

函数名加(实参),这样吧...举个例子你看一下...

int add(int x,int y)
{
int x,y;
int z;
z=x+y;
return z;
}//定义一个z=x+y的函数

int main()//主函数
{
int a=10,b=20;
int m;
m=add(a,b);//这句就是函数的调用...调用了add函数
printf("%d",m);
return m;
}

理解了没...还没的话...仔细看下教材...这个问题很容易解决的...

4. 怎样在一个 C 程序中调用另一个程序 (独立可执行的程序, 或系统命令)

使用库函数 system(), 它的功能正是所要的。注意, 系统返回的值最多是命令的退出状态值 (但这并不是一定的), 通常和命令的输出无关。还要注意,system() 只接受一个单独的字符串参数来表述调用程序。如果要建立复杂的命令行, 可以使用 sprintf()。根据使用的系统, 也许还可以使用系统函数, 例如exec 或 spawn (或execl,execv, spawnl, spawnv 等)。

5. 汇编语言是怎么调用c语言的程序的

一、 参数传递的基本规则(ATPCS(ARM—Thumb Procere Call Standard))
1、 参数传递

二、汇编程序、C程序相互调用举例
1、 C程序调用汇编程序
汇编程序的设计要遵守ATPCS(ARM—Thumb Procere Call Standard),保证程序调用时参数的正确传递。在汇编程序中使用EXPORT 伪操作声明本程序,使得本程序可以被别的程序调用。在C程序使用extern声明该汇编程序。
下面是一个C程序调用汇编程序的例子。其中汇编程序str实现字符串复制功能,C程序调用str完成字符串复制的工作。
//C程序
#include <stdio.h>
extern void str(char *d, const char *s);
int main( )
{
const char *srcstr=”First string-source”;
char dststr[ ]=”Second string-destination”;
printf(“Before ing:\n”);
printf(“%s\n %s\n”, srcstr,dststr);
str(dststr,srcstr);
printf(“After ing:\n”);
printf(“%s\n %s\n “,srcstr,dststr);
while(1) ;
}

;汇编程序
AREA S, CODE, READONLY
EXPORT str
Str
LDRB R2, [R1], #1
STRB R2, [R0], #1
CMPR2,#0
BNE Str
MOV PC, LR
END
2、 汇编程序调用C程序
汇编程序的设计要遵守ATPCS,保证程序调用时参数的正确传递。在汇编程序中使用IMPORT伪操作声明将要调用的C程序。下面是一个汇编程序调用C程序的例子。其中在汇编程序中设置好各参数的值。本例中有6个参数,分别使用寄存器R0存放第1个参数,
R1存放第2个参数, R2存放第3个参数, R3存放第4个参数, 第5个、第6个参数利用数据栈传送。由于利用数据栈传递参数,在程序调用结束后要调整数据栈指针。
//C程序g( )返回6个参数的和
int g( int a, int b, int c, int d, int e, int f )
{
printf(“e=%d\n”, e);
printf(“f=%d\n”, f);
return (a+b+c+d+e+f);
}

; 汇编程序调用C程序 g( ) 计算6个整数 i, 2*i, 3*i, 4*i, 5*i, 6*i的和
EXPORT f
AREA f ,CODE, READONLY
IMPORT g
MOV R0, #1
ADD R1, R0, R0
ADD R2, R1, R0
ADD R3, R2, R0
ADD R4, R3, R0
ADD R5, R4, R0
STR R4, [SP, #-4]!
STR R5, [SP, #-4]!
BL g
ADD SP, SP, #4
ADD SP, SP, #4
STOP B STOP
END

6. C#中如何调用C程序

前段时间调用过dll,就是先声明dll里的方法,指定dll所在的地方,然后就可以调用dll里面的方法了

7. c语言如何 调用外部程序

调用外部程序接口

方法1.

Process p=Runtime.getRuntime.exec("cmd")(最常用)

方法2.

Process p=new ProcessBuilder(cmd).start()

但是一般方法一比较常用, 下面我们介绍下方法一中关于抽象Process类的常用函数

8. java如何调用c语言源文件并进行执行

要在java中调用c语言的库,需要使用Java提供了JNI。
举例说明
在c语言中定义一个 void sayHello()函数(打印Hello World);然后在Java中调用这个函数显示Hello Word.
现在分别从Java和C语言两部分说明:
1. Java 部分
首先定义一个HelloNative,在其中申明sayHello函数,函数要申明为Native 类型的.如下:
public class HelloNative {
public native void sayHello();
}

编译这个类,生成class文件:
javac HelloWorld.java

利用javah生成需要的h文件
javah HelloNative

生成的 h文件大概如下:

/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class HelloNative */

#ifndef _Included_HelloNative
#define _Included_HelloNative
#ifdef __cplusplus
extern "C" {
#endif
/*
* Class: HelloNative
* Method: sayHello
* Signature: ()V
*/
JNIEXPORT void JNICALL Java_HelloNative_sayHello
(JNIEnv *, jobject);

#ifdef __cplusplus
}
#endif
#endif

可以看一下上面自动生成的程序,程序include了jni.h,这个头文件在 $JAVA_HOME下的include文件夹下. 还可以发现生成的函数名是在之前的函数名前面加上了Java_HelloNative。
2. C语言部分
根据上面生成的h文件编写相应的代码实现,建立一个 HelloNative.cpp用来实现显示Hello World的函数.如下:

#include <stdio.h>
#include "HelloNative.h"

JNIEXPORT void JNICALL Java_HelloNative_sayHello(JNIEnv *, jobject)
{
printf("Hello World!\n");
}

代码编写完成之后,我们再用gcc编译成库文件,命令如下;
gcc -fPIC -I/usr/lib/jvm/java-7-openjdk-i386/include -I/usr/lib/jvm/java-7-openjdk-i386/include/linux -shared -o libHelloNative.so HelloNative.cpp

这样就会在当前目录下生成一个libHelloNative.so的库文件.这时需要的库已经生成,在C语言下的工作已经完成了.
接下来需要在Java中编写一个程序测试一下.在程序前,需要将我们的库载入进去.载入的方法是调用Java的 System.loadLibrary("HelloNative");

public class TestNative
{
static {
try {
System.loadLibrary("HelloNative");
}
catch(UnsatisfiedLinkError e) {
System.out.println( "Cannot load hello library:\n " + e.toString() );
}
}
public static void main(String[] args) {
HelloNative test = new HelloNative();
test.sayHello();
}
}

但是再编译后,运行的时候,问题又出现了.
Cannot load hello library:
java.lang.UnsatisfiedLinkError: no HelloNative in java.library.path
Exception in thread "main" java.lang.UnsatisfiedLinkError: HelloNative.sayHello()V
at HelloNative.sayHello(Native Method)
at TestNative.main(TestNative.java:13)

载入库失败,但是库明明就是放在当前文件夹下的,怎么会载入失败呢?
用System.getProperty("java.library.path")查看,发现java.library.path中并不u存在当前的目录.主要有以下的几个解决办法:
1) 将生成的库复制到java.library.path有的路径中去,当然这样不是很好
2) 设置环境变量export LD_LIBRARY_PATH=.:$LD_LIBRARY_PATH ,将当前的目录加入到LD_LIBRARY_PATH中
3) 设置java 的选项,将当前的目录加入到其中 .java -Djava.library.path=. $LD_LIBRARY_PATH
这样之后程序就能够成功的运行了.可以看见显示的"Hello World!"了

9. 请问java语言如何调用c语言程序

这个好像不是一回事吧?不过java可以用c语言的代码(有些),也可能有些要做一下变动,总体差不多!

10. C语言如何调用别的程序

可以啊,只要放到程序李就得,但是不能是编译语言

阅读全文

与如何调用c程序相关的资料

热点内容
代理微商怎么办理 浏览:239
财务代理行业如何报税 浏览:48
阅读课外书的时候需要哪些信息呢 浏览:97
商品房契税交多久才能交易 浏览:148
交易猫如何将钱提出来 浏览:910
只买涨跌的是什么交易 浏览:794
羊用什么产品 浏览:905
奶粉代理哪个品牌最好 浏览:967
技术类账号有哪些 浏览:111
从哪里能查出车辆冻结信息 浏览:112
c管家安装需要在什么程序上 浏览:353
苹果手机怎么设置国外代理 浏览:387
2k14如何交易科比 浏览:221
数控操机怎么在程序里找刀 浏览:577
登录时信息要多少个字 浏览:589
红色基因产品有哪些 浏览:770
小米手机信息验证码怎么全部删除 浏览:778
怎么看职业技术学院什么时候开学 浏览:584
房东代理直租什么意思 浏览:756
射频遥控数据终端是什么 浏览:401