user-0 提问: 函数中变量实时取值请大家给一个解决办法。

回复:
user: user-1
content: 引用 17 楼 zhao4zhong1 的回复:

user: user-0
content: 引用 13 楼 lm_whales 的回复:例如共享内存策略，其中内存映射文件，是现代操作系统提供的一种数据共享方式 其他，如写到文件中，通过 有名无名管道通讯， 通过 网络接口通讯 单机版，可以通过 测试地址127.0.0.1 实现两个进程通讯 。 这个地址，是不用联网就可以使用的网络地址  我现在就正在写进程间通讯。谢谢你啦。

user: user-0
content: 引用 11 楼 zhao4zhong1 的回复:问我啊！ 哈哈，那真是太好了!

user: user-0
content: 引用 10 楼 fly_dragon_fly 的回复:放在全局或者static不行吗 对  就是这样。刚才脑子短路了

user: user-1
content: 例如共享内存策略，其中内存映射文件，是现代操作系统提供的一种数据共享方式 其他，如写到文件中，通过 有名无名管道通讯， 通过 网络接口通讯 单机版，可以通过 测试地址127.0.0.1 实现两个进程通讯 。 这个地址，是不用联网就可以使用的网络地址

user: user-1
content: 外部接收？网？串口？其它程序，如dos命令行，unix,linux ,shell 命令？ 那就需要同步一下了 可能涉及进程间通讯问题， 进程通讯的话，一般都是不同操作系统，方法不同， 但也都更多的是同步问题。 至于如何处理，接收到的数据，只是个策略问题。

user: user-2
content: 引用 7 楼 leee7338 的回复:[quote=引用 5 楼 zhao4zhong1 的回复:] 学习时间的长短有时不重要。 是否带着问题去学有时很重要。 学的时候有没有师傅带，师傅的水平够不够高，有时很重要。  我是带着问题学习，遇见问题自己想办法，实在解决不了的就来这问大家，可我感觉这样太耽误时间了， 领导让我有问题问旁边的同事，可我每次问他如果很简单的就会给我说的很细，唠唠叨叨的我又不好打断，如果难的就会讲一通然后糊弄过去，我现在都不问他了，因为我怕他会误导我。领导整天忙，我想去问又不好打扰。哎！其他人都是做java的。 [/quote] 问我啊！

user: user-3
content: 放在全局或者static不行吗

user: user-2
content: 引用 16 楼 leee7338 的回复:[quote=引用 13 楼 lm_whales 的回复:] 例如共享内存策略，其中内存映射文件，是现代操作系统提供的一种数据共享方式 其他，如写到文件中，通过 有名无名管道通讯， 通过 网络接口通讯 单机版，可以通过 测试地址127.0.0.1 实现两个进程通讯 。 这个地址，是不用联网就可以使用的网络地址  我现在就正在写进程间通讯。谢谢你啦。[/quote]

user: user-0
content: 引用 8 楼 zhangxiangDavaid 的回复:又见 fflush(stdout); rewind(stdin);

user: user-4
content: 又见 fflush(stdout); rewind(stdin);

user: user-0
content: 引用 5 楼 zhao4zhong1 的回复:学习时间的长短有时不重要。 是否带着问题去学有时很重要。 学的时候有没有师傅带，师傅的水平够不够高，有时很重要。  我是带着问题学习，遇见问题自己想办法，实在解决不了的就来这问大家，可我感觉这样太耽误时间了， 领导让我有问题问旁边的同事，可我每次问他如果很简单的就会给我说的很细，唠唠叨叨的我又不好打断，如果难的就会讲一通然后糊弄过去，我现在都不问他了，因为我怕他会误导我。领导整天忙，我想去问又不好打扰。哎！其他人都是做java的。

user: user-2
content: 《Windows核心编程》

user: user-2
content: 引用 4 楼 leee7338 的回复:[quote=引用 2 楼 zhao4zhong1 的回复:] //一个程序，包括两个函数func1();func2();和一个main(); //main函数中根据flag来选择调用这两个函数中的其中一个， //调用func1函数时可以接收一个字符串保存在buff数组中， //而调用func2函数时需要用到这个字符串， //请问该怎么做  能在调用func2的时候能得到上一次func1接收的字符串？ #include <stdio.h> #include <string.h> char buff[256]; void func1() {     rewind(stdin);     fgets(buff,256,stdin);     if ('\n'==buff[strlen(buff)-1]) buff[strlen(buff)-1]=0; } void func2() {     printf("buff:[%s]\n",buff); } int main() {     int flag=1;      while (1) {         printf("flag:");fflush(stdout);         rewind(stdin);scanf("%d",&flag);         switch (flag) {             case 1:func1();break;             case 2:func2();break;             case 0:return 0;         }     }     return 0; } //flag:2 //buff:[] //flag:1 //Hello, world! //flag:2 //buff:[Hello, world!] //flag:0 //  不是一次执行，是如果执行两次改怎么获得。。。。、 不过现在想通了  惭愧啊！麻烦赵四老师了。   顺便问大家一个问题：我每天从9点开始上班，5点半下班。晚上8点学习到11点半回去睡觉， 照这样下去  我多久才能成为一个合格的C程序员？ [/quote] 学习时间的长短有时不重要。 是否带着问题去学有时很重要。 学的时候有没有师傅带，师傅的水平够不够高，有时很重要。

user: user-0
content: 引用 2 楼 zhao4zhong1 的回复://一个程序，包括两个函数func1();func2();和一个main(); //main函数中根据flag来选择调用这两个函数中的其中一个， //调用func1函数时可以接收一个字符串保存在buff数组中， //而调用func2函数时需要用到这个字符串， //请问该怎么做  能在调用func2的时候能得到上一次func1接收的字符串？ #include <stdio.h> #include <string.h> char buff[256]; void func1() {     rewind(stdin);     fgets(buff,256,stdin);     if ('\n'==buff[strlen(buff)-1]) buff[strlen(buff)-1]=0; } void func2() {     printf("buff:[%s]\n",buff); } int main() {     int flag=1;      while (1) {         printf("flag:");fflush(stdout);         rewind(stdin);scanf("%d",&flag);         switch (flag) {             case 1:func1();break;             case 2:func2();break;             case 0:return 0;         }     }     return 0; } //flag:2 //buff:[] //flag:1 //Hello, world! //flag:2 //buff:[Hello, world!] //flag:0 //  不是一次执行，是如果执行两次改怎么获得。。。。、 不过现在想通了  惭愧啊！麻烦赵四老师了。   顺便问大家一个问题：我每天从9点开始上班，5点半下班。晚上8点学习到11点半回去睡觉， 照这样下去  我多久才能成为一个合格的C程序员？

user: user-0
content: 引用 1 楼 lm_whales 的回复:函数参数传递，是最简单的方法，C 可以用全局变量，C++ 只要定义一个类，方法在类内定义 并在main函数内部，定义一个 对象，就可以了。 可能是我说的有问题。让你理解错了。 这个程序是从外面接收一个命令，main函数由这条命令来判断要调用哪个函数， 如果前两次运行行先调用了两次func1，接收了两次字符串， /*写到这里的时候我突然明白过来了，还是写完吧。就是怕大家笑话我，因为我写的程序是一直在运行的，不停的接收和发送*/ 若第三次main要调用func2来发送最近一次func1接收的字符串，改怎么办？除了建立文件。 还是谢谢你。

user: user-2
content: //一个程序，包括两个函数func1();func2();和一个main(); //main函数中根据flag来选择调用这两个函数中的其中一个， //调用func1函数时可以接收一个字符串保存在buff数组中， //而调用func2函数时需要用到这个字符串， //请问该怎么做  能在调用func2的时候能得到上一次func1接收的字符串？ #include <stdio.h> #include <string.h> char buff[256]; void func1() {     rewind(stdin);     fgets(buff,256,stdin);     if ('\n'==buff[strlen(buff)-1]) buff[strlen(buff)-1]=0; } void func2() {     printf("buff:[%s]\n",buff); } int main() {     int flag=1;      while (1) {         printf("flag:");fflush(stdout);         rewind(stdin);scanf("%d",&flag);         switch (flag) {             case 1:func1();break;             case 2:func2();break;             case 0:return 0;         }     }     return 0; } //flag:2 //buff:[] //flag:1 //Hello, world! //flag:2 //buff:[Hello, world!] //flag:0 //

user: user-1
content: 函数参数传递，是最简单的方法，C 可以用全局变量，C++ 只要定义一个类，方法在类内定义 并在main函数内部，定义一个 对象，就可以了。