由买买提看人间百态

topics

全部话题 - 话题: 主程序
首页 上页 1 2 3 4 5 6 7 8 下页 末页 (共8页)
a***e
发帖数: 1140
1
来自主题: Programming版 - static function and static variable?
用了C++一段时间了,还是没有完全弄明白。
看一个程序:
主程序:
double* obj; //只有定义。
function_sub(&obj); //调用子程序, 并把指针的地址做参量。
子程序:
static void function_sub(double **obj_p){
static double val[2]={1,2}; //为什么要static?
*obj_p=val; //让local数组返回?
}
俺不明白的是,参数 obj 只定义,没有分配内存。 当子程序调用结束时,local数组就
自动distory了,那返回的难道不是一个无效数组首地址吗? 还是因为加了static 关键
字就变成global了?
还有在这种情况子函数定义成 “static void” 有什么含义?
s***k
发帖数: 2754
2
就是一个C函数的定义的第一行。
这个函数定义一个字符串并且传回主程序。
没有形参。
别人考我这个,不会:(
俺很怀疑有没有别的写法(*前后的空格应该不算吧,呵呵)。int *也不算。
人家说有,但我想不出来。
谁教教我?多谢!
t******n
发帖数: 138
3
来自主题: Programming版 - 问一个关于ANSI C中system命令的问题
我用system命令在ANSI C主程序A中调用另一程序B,
程序B的结果是一个数值,我想把这个结果赋值给程序A中的
一个变量,应该怎么传递呢?
我以前让B把结果写在硬盘上,再在A里把它读出来,感觉很傻。
google了一下,好像是用fork(),execl(),pipe()等等.......
多谢!
x*******r
发帖数: 6
4
来自主题: Programming版 - 请教一个排序的问题。

================================
总共有nx*ny*nz个数,这些数放在变量arr里,变量arr在module FIELD里。我要挑出第
kk大那个数,并把这个值赋给yy.
我编译用的是:mpxlf90_r -qsuffix=f=f90 -q64 -o 。。。。。。
(虽然主程序是MPI的,但是call这个select函数只是在一个processor里,所以这部分
和串行一样)
t****t
发帖数: 6806
5
来自主题: Programming版 - 请教一个排序的问题。
我想不用了,你就把select.f里所有integer改成integer*8就好了.
当然,你自己的主程序里也应该有相同的类型.
t****t
发帖数: 6806
6
来自主题: Programming版 - 请教一个排序的问题。
我google了一下,也找到了这个程序.我没有用过power pc的CPU,但是我想可能是由于编
译器的问题,如果你的array index是32位,那产生的access也是+/-2GB的.你用integer
当index是刚好够,但是*4就不够了.如果你用64位的index,那么access应该是全部64位
的,就没问题了.
所以说你主程序里也要把index改成64位的才好.
x*******r
发帖数: 6
7
来自主题: Programming版 - 请教一个排序的问题。
非常感谢thrust!
我水平很低,但是大概能明白你的意思。
我是不是只需要将主程序,子程序里相关的整数由integer*4 变为integer*8,而实数
还是Real*4不用变就可以了?

integer
r****t
发帖数: 10904
8
来自主题: Programming版 - Python, import/global
这个practice不好,这让module1 depends on global foo.
如果一定要用global变量, 写到一个module里面:
globalvars.py:
foo = "bar"
foo1 = "bar1"
然后在主程序里头:
import globalvars
or
from globalvars import *
w***n
发帖数: 1137
9
来自主题: Programming版 - 问一个c的问题
看到一个程序, 里面有这么一句。
#include
#include
#include "errors.h"
typedef struct alarm_tag {
struct alarm_tag *link;
int seconds;
time_t time; /* seconds from EPOCH */
char message[64];
} alarm_t;
在主程序力有这么一句
alarm->time = time (NULL) + alarm->seconds;
以前没有见过这种用法,这句到底是什么意思?
k********r
发帖数: 18
10
来自主题: Programming版 - About timeout in Socket Programming.
我在编一个peer-to-peer 的程序。
Computer A 收到用户输入后就broadcast 个request packet 寻求文件
。有文件的Computer B和 C都返回 response. Computer A选择并发confirm 给B,同
时打开server接受连接。B收到confirm后和A建立连接。
我要给request 和confirm设个timeout。如果request 没及时收到response,重传。否
则取消timeout; 如果A的confirm 没及时收到B的连接,A就给C发confirm让C和A建
立连接,如收到就取消timeout;
Question:
1. 如何设timeout哪?
a.select(). 可我在主程序已经把select()放在loop里接受stdio, request/response/
confirm, 好像没地方再设其他select()给request/confirm用于timeout了。
b. 用alarm(). 可alarm()无法区分是alarm谁,哪个文件的哪个reques
c****y
发帖数: 24
11
来自主题: Programming版 - About timeout in Socket Programming.
fork()吧,子进程可以用个SIGALRM处理函数来设置个标志;子进程的结束状态可以由
wait/waitpid得到。然后父进程就在loop B/C,子进程成功返回就直接break,否则继
续loop。

我在编一个peer-to-peer 的程序。
Computer A 收到用户输入后就broadcast 个request packet 寻求文件
。有文件的Computer B和 C都返回 response. Computer A选择并发confirm 给B,同
时打开server接受连接。B收到confirm后和A建立连接。
我要给request 和confirm设个timeout。如果request 没及时收到response,重传。否
则取消timeout; 如果A的confirm 没及时收到B的连接,A就给C发confirm让C和A建
立连接,如收到就取消timeout;
Question:
1. 如何设timeout哪?
a.select(). 可我在主程序已经把select()放在loop里接受stdio, request/respon
t*i
发帖数: 72
12
来自主题: Programming版 - C语言一个passing variable的问题
我有一个结构如下,
struct{
char *data;
.....
} Connection
在一个静态libraray里我定义了一个function如下
create_connection(){
Connection conn;
conn->data=olddata;
}
func1(Connection *conn, char * msg){
}
func2(Connection *conn, char *msg
if (conn->data =newdata) {
.......
}
}
我在住程序调用了func1如下
func1(Connection *conn, char *msg){
create_connection();
sprintf(conn->data, "%s", "newdata");
func2();
}
我发现尽管我在主程序改变了conn->data,可是似乎到func2的时候,conn->data还总是
olddata,请问这到底是啥问题呢。
t*i
发帖数: 72
13
来自主题: Programming版 - C语言一个passing variable的问题
呵呵==
我的意思就是,尽管我在主程序里把conn->data给改了,调用func2的时候似乎conn->
data还是没有改变,=是个问题, 我过会看看是不是这个错了。 谢谢。
b***y
发帖数: 2799
14
来自主题: Programming版 - [合集] 关于查内存泄露
☆─────────────────────────────────────☆
wealdg (wwwnet) 于 (Sun Feb 3 22:23:04 2008) 提到:
有一巨大的程序如下:
In the main program:
#include "A.h"
#include "B.h"
int main()
{
}
in A.cpp:
#include "C.h"
#include "D.h"
#include "E.h"
Function A1
Function A2
在类B C D E 中仍会调用很多其他的类,在监测内存泄露时,是否只是在主程序(MAIN
)中,加上
#define _CRTDBG_MAP_ALLOC
#include
#include
#include "A.h"
#include "B.h"
//#ifdef _DEBUG
//_CrtSetDbgFlag ( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF );
//#endif
int mai
h*******n
发帖数: 2052
15
比如我一个程序, 用Stack, Queue, Stack.h 和 Queue.h里面都#include Itemtype.h
但是Itemtype.h里面定义了一些变量, 比如
const int MAX_ITEMS = 5
enum RelationType {LESS, GREATER, EQUAL} 等等,
在主程序中#include Stack.h和Queue.h, 编译时出错, 说multiple declaration of
MAX_ITEMS还有RelationType, 这种问题怎么解决?
t********s
发帖数: 4503
16
来自主题: Programming版 - 那个语言最适合做科学计算软件
问个具体问题:
fortran子程序中可用变量来定义数组大小,但所对应的数组最终要在主程序中定义具
体的大小,比如100X100的二围数组。但如果生成软件给用户时,用户得到的是二进制
码,不是你的源程序,所以用户不能改变这个数组的大小。如果用户要求解一个
1000X1000的问题怎么办?C可以动态分配数组大小,所以用户可输入所要求解的问题大
小给一个变量,程序运行时可自动分配到所需空间。Fortran怎么办?
b***y
发帖数: 2799
17
来自主题: Programming版 - [合集] 关于C++ Class Template编程一问
☆─────────────────────────────────────☆
qr (非凡公子) 于 (Fri Apr 11 18:03:21 2008) 提到:
我想在一个class的constructor里面初始化某些数据,希望这些数据类型可以是float
或者double的,现在的问题是如果我把constructor写在xxx.h文件中,程序不报错。但
是如果单独写在xxx.cpp中,然后include xxx.h中的declartion,在主程序中再调用这
个xxx.h然后定义该class的一个实例,编程器总是报告link错误,说这个constrctor函
数是unresolved external symbol。如果把程序改成正常的class就没有这个问题,百
思不得其解,请高手赐教。
☆─────────────────────────────────────☆
jobseek (seeking+jobs) 于 (Fri Apr 11 18:23:00 2008) 提到:
这是template的毛病,
得把declaration and definit
b***y
发帖数: 2799
18
来自主题: Programming版 - [合集] 指针问题
☆─────────────────────────────────────☆
nochoice (别无选择) 于 (Tue Sep 20 21:56:36 2005) 提到:
我有一个小问题(对各位高手来说)。
我声明一个类
class a{
int **b;
void do()
{
b[0][0].....;
}
...
}
我想这样用,好像不行
void main()
{
int b[2][3]={.....};
a *test=new a;
test->b=b;
test->do();
}
我想主程序里面声明一个多维数组(不定大小的),然后用对象里面的指针指向这个多维数
组引用,这样省了构造函数再分配空间.
有没有什么好办法实现?
☆─────────────────────────────────────☆
oOOo (\_/o!o\_/) 于 (Tue Sep 20 22:41:12 2005) 提到:
first, int**b should be public
a
s******h
发帖数: 54
19
来自主题: Programming版 - 菜鸟弱问FORTRAN的一个小问题
如果不用这个contains的话,主程序内部定义的函数或者子程序就不能调用了么??
v**i
发帖数: 50
20
来自主题: Programming版 - 一个fortran的奇怪问题
本人用fortran时间不长,遇到下面的问题,花了很多时间看书也没搞明白。
下面的Function, 名字是 ix
real Function ix(x)
real x
ix=1.0+x
end
然后在主程序里调用,比如
print *, ix(0.3)
结果是 4599856, 而不是1.3
如果把所有的名字ix换成 bx,结果就对了。是不是fortran的函数不能以字母i开头啊
?谢谢解答
d*e
发帖数: 109
21
来自主题: Programming版 - 【求助】Fortran多线程执行效率问题
【 以下文字转载自 CS 讨论区 】
发信人: die (Die), 信区: CS
标 题: 【求助】Fortran多线程执行效率问题
发信站: BBS 未名空间站 (Tue Aug 11 08:55:06 2009, 美东)
请教为何多线程执行起来花费时间比单线程要多呢?
非常感谢~
问题如下:
函数是用MONT CARLO方法计算圆周率。单线程计算函数两次共耗费大约是97;而两个线
程分别计算函数一次耗费的时间是392.
环境:
CPU: i7920 4核
操作系统:Windows Vista
编译器:Fortran 90
程序如下:
多线程主程序:
Program TESTPROC0
use ifqwin
use dfmt
use threadfunction
implicit none
integer,parameter::n_thread=2,n_c=2
integer(INT_PTR_KIND())::Threads_Handle(n_thread),waitresult,cend,retlog,
retint,&
thread_
v**i
发帖数: 50
22
来自主题: Programming版 - fortran 中数值精度怎么保证的?
设有一个double precision function, 比如下面的
function b(x)
double precision x,b
b=dlog(x)
end
然后在主程序里面调用,
如果输入
x=2.0_8
y=b(x)
print ("(f30.20)"),y
结果就是准确的,
如果输入
x=2.0_8
print ("(f30.20)"), b(x)
显示结果的精度不够,为什么呢? 谢谢解答,
l***e
发帖数: 480
23
来自主题: Programming版 - 继续请教C++重载问题,>>
有一文件存有大量对象记录,前面问过。
每行一个记录,记录有两种:
一种是两个string和两个int,中间是'\t';串中有空格。
另一种是开头一个固定字符串以'?'结尾,然后是两个串,和一个int,中间也是'\t';
记录/行之间有空行。
我要定义这个对象的extractor(>>)
我的问题是,空行在哪里处理?
如果在对象>>函数里处理,那就要产生空对象返回。
如果在对象>>函数外处理,主程序先从文件里读一行,判断是否空行,是,跳过;不是
,送给对象,这时传的就是string了,而不是输入流了。
所以请教大家,集思广益。
C******e
发帖数: 1850
24
来自主题: Programming版 - 请教一个文件IO的问题
请教大侠们一个文件IO的问题,我有一段程序要读出一个文件里的数据进行处理,但由
于文件很长,
所以想用一个CALLBACK函数专门来分批的读文件,每次读一段。主程序处理完了现有的
数据,就让
CALLBACK去读下一块。思想如下:
int callback(int **databuf, void* userdata)
{
state = userdata;
fseek(state->fp, OFFSET, 0);
r = fread();
return r;
}
main()
{
declare userdata;
userdata.fp = fopen("file","r");
datastruct = function1(par1, par2, ..., &callback);
for(;;)
dataprocess(datastruct);
fclose(userdata.fp);
}
但是好像不对,一运行就死了,请大侠指正。多谢了。
i*****t
发帖数: 636
25
来自主题: Programming版 - 关于数组size的问题
举个简单例子,比如一个function有两个输入,第一个是整数数组,第二个是数组的si
ze,在主程序中调用时数组大小跟数组是一致的,比如
int arr[5] = {1, 2, 3, 4, 5};
func(arr, 5);
但如果不一致,比如上述例子中第二个输入为10,那么怎么在func中check呢?如果无法
check的话应该怎么处理呢?thanks
l******t
发帖数: 12659
26
来自主题: Programming版 - [请教]命令行的重定向
向大家请教一个问题:
1. 编译文件: g++ -o exec prog.cpp
2. 重定向: exec < folder > output
目的是打算从folder里面寻找所需要的文件,然后处理后,将结果保存到output
请问,我在主程序中,如何得到folder的名字;里面的文件等信息啊?
多谢了!
首页 上页 1 2 3 4 5 6 7 8 下页 末页 (共8页)