c语言函数调用调用一个文件,从中抽取一个数

当前位置: & c语言 多文件中,怎么使..
c语言 多文件中,怎么使用同一个结构体数组?
问题补充:
1.我在头文件里写了一个结构体,起了别名stu(用了条件编译,ifndef),然后声明了一个结构体数组s[100]。我在put.c中添加了头文件,在main.c中也添加了头文件,但是还是会说我重复定义。为什么呢?
2.还有如果我不在头文件里写,写成全局变量,再用extern 该怎么在别的文件引用他呢.是extern stu s[100]么?
1.我在头文件里写了一个结构体,起了别名stu(用了条件编译,ifndef),然后声明了一个结构体数组s[100]。我在put.c中添加了头文件,在main.c中也添加了头文件,但是还是会说我重复定义。为什么呢?
2.还有如果我不在头文件里写,写成全局变量,再用extern 该怎么在别的文件引用他呢.是extern stu s[100]么?
问题标签:
如果你把int A的定义放在主函数中,A就变成了一个自动变量,A的作用域就只有在该主函数能用,退出主函数则A也跟着消失。另外,具有外部链接的静态变量具有文件作用域、外部外接、和静态存储时期,这一类型有时被称为外部存储类,这一类型的变量被称为外部变量。声明外部变量本身就是给其它文件可以调用的机会。
您尚未登陆,请
之后再提交答案!
没有账号?
“送人玫瑰 手留余香”,您的建议可能影响他人一生。希望所有用户能够严肃对待回答,尽可能地为用户提供准确、全面、可信、有建设意义的高质量答案。
以下情况,用户回答一经发现,立即删除:
1、回答内容不能出现任何形式的广告、灌水行为,尤其是指向提供单位主站(页)的网址链接;
2、回答内容答非所问,与提问毫无关联或者关联性不大;
3、回答内容不能恶意中伤他人或其他单位的;
4、回答内容禁止复制粘贴大幅网络内容,提供无建设性意见的回答;
5、回答内容存在误导他人的事实性错误或过于偏激的主观臆断;
6、回答内容需符合法律法规及道德规范,不能含有脏话,恶意攻击,恐怖或者教唆犯罪,涉及歧视、误导等内容。
深圳市一览网络股份有限公司 版权所有 & 粤ICP备号 增值电信业务经营许可证:粤B2-C语言习题全集+答案_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
C语言习题全集+答案
第​四​版​C​程​序​设​计​习​题​全​集​(​每​章​都​有​习​题​,​还​有​模​拟​试​题​)​+​答​案
阅读已结束,如果下载本文需要使用
想免费下载本文?
把文档贴到Blog、BBS或个人站等:
普通尺寸(450*500pix)
较大尺寸(630*500pix)
你可能喜欢基本步骤和在java中调用C语言方法一样,只列出主要代码。
MyTest.java
public class MyTest{
private native String[] getInfo();
System.loadLibrary(&MyTest&);
public static void main(String[] args){
while(true){
MyTest test=new MyTest();
String[] str=test.getInfo();
System.out.println(&getInfo:&+str[0]);
生成的MyTest.h头文件:
/* DO NOT EDIT THIS FILE - it is machine generated */
#include &jni.h&
/* Header for class MyTest */
#ifndef _Included_MyTest
#define _Included_MyTest
#ifdef __cplusplus
extern &C& {
* Signature: ()[Ljava/lang/S
JNIEXPORT jobjectArray JNICALL Java_MyTest_getInfo
(JNIEnv *, jobject);
#ifdef __cplusplus
实现MyTest.h中定义方法的MyTest.c:
#include &stdio.h&
#include&sys/types.h&
#include&fcntl.h&
#include&termios.h&
#include &MyTest.h&
#define BAUDRATE B38400
#define MODEMDEVICE &/dev/ttyS0&
JNIEXPORT jobjectArray JNICALL Java_MyTest_getInfo (JNIEnv *env, jclass cls){
int fd,c=0,
struct termios oldtio,
char buf[256];
printf(&start ...\n&);
fd=open(MODEMDEVICE,O_RDWR | O_NOCTTY);
perror(MODEMDEVICE);
printf(&open...\n&);
tcgetattr(fd,&oldtio);
bzero(&newtio,sizeof(newtio));
newtio.c_cflag=BAUDRATE | CS8 | CLOCAL | CREAD;
newtio.c_iflag=IGNPAR;
newtio.c_oflag=0;
newtio.c_lflag=ICANON;
tcflush(fd,TCIFLUSH);
tcsetattr(fd,TCSANOW,&newtio);
printf(&reading...\n&);
res=read(fd,buf,255);
buf[res]=0;
printf(&res=%d vuf=%s\n&,res,buf);
printf(&close...\n&);
close(fd);
tcsetattr(fd,TCSANOW,&oldtio);
jobjectArray args = 0;
args=(*env)-&NewObjectArray(env,1,(*env)-&FindClass(env,&java/lang/String&),0);
str = (*env)-&NewStringUTF(env,buf);
(*env)-&SetObjectArrayElement(env,args,0,str);
makefile文件如下:
libMyTest.so:MyTest.o makefile
gcc -Wall -rdynamic -shared -o libMyTest.so MyTest.o
  MyTest.o:MyTest.c MyTest.h
gcc -Wall -c MyTest.c -I./ -I/usr/lib/jvm/java-7-openjdk-i386/include -I/usr/lib/jvm/java-7-openjdk-i386/include/linux
rm -rf *.o *.so
然后使用java MyTest,这样当服务端从串口发来数据时,MyTest.java便可以通过C语言方法获取到串口上的数据并生成java的String对象,并打印出来。
(-----------完------------)
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:147278次
积分:2315
积分:2315
排名:第7323名
原创:73篇
转载:103篇
评论:27条
(2)(5)(1)(4)(2)(9)(1)(4)(2)(2)(2)(4)(2)(3)(2)(1)(11)(7)(5)(16)(2)(11)(14)(15)(4)(18)(6)(10)(6)(5)2011年9月全国计算机等级考试2级C语言,上机原题题库(史上最最权威,一个字都不差)_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
文档贡献者
评价文档:
喜欢此文档的还喜欢
2011年9月全国计算机等级考试2级C语言,上机原题题库(史上最最权威,一个字都不差)
T​X​T​版​本​,​考​试​中​建​议​用​ ​v​i​s​u​a​l​打​开​ ​不​要​用​记​事​本​打​开​,​呵​呵​ ​!​!​ ​防​止​被​抓​。​
​
​
​
​
​
​自​学​、​小​抄​绝​佳​ ​答​案​。
把文档贴到Blog、BBS或个人站等:
普通尺寸(450*500pix)
较大尺寸(630*500pix)
大小:126.87KB
登录百度文库,专享文档复制特权,财富值每天免费拿!
你可能喜欢}

我要回帖

更多关于 c语言怎么调用函数 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信