关于函数返回值的问题 [问题点数:50分]

Bbs1
本版专家分:0
结帖率 60%
Bbs8
本版专家分:49950
Blank
红花 2018年11月 Delphi大版内专家分月排行榜第一
2018年5月 Delphi大版内专家分月排行榜第一
2018年2月 Delphi大版内专家分月排行榜第一
2018年1月 Delphi大版内专家分月排行榜第一
2017年12月 Delphi大版内专家分月排行榜第一
2017年8月 Delphi大版内专家分月排行榜第一
2017年7月 Delphi大版内专家分月排行榜第一
2017年5月 Delphi大版内专家分月排行榜第一
2017年3月 Delphi大版内专家分月排行榜第一
2017年2月 Delphi大版内专家分月排行榜第一
2016年12月 Delphi大版内专家分月排行榜第一
2016年11月 Delphi大版内专家分月排行榜第一
2016年10月 Delphi大版内专家分月排行榜第一
2016年9月 Delphi大版内专家分月排行榜第一
2016年8月 Delphi大版内专家分月排行榜第一
2016年7月 Delphi大版内专家分月排行榜第一
2016年6月 Delphi大版内专家分月排行榜第一
2016年5月 Delphi大版内专家分月排行榜第一
2016年4月 Delphi大版内专家分月排行榜第一
2016年3月 Delphi大版内专家分月排行榜第一
2016年2月 Delphi大版内专家分月排行榜第一
2016年1月 Delphi大版内专家分月排行榜第一
2015年12月 Delphi大版内专家分月排行榜第一
2015年11月 Delphi大版内专家分月排行榜第一
2015年10月 Delphi大版内专家分月排行榜第一
2015年9月 Delphi大版内专家分月排行榜第一
2015年8月 Delphi大版内专家分月排行榜第一
2015年7月 Delphi大版内专家分月排行榜第一
2015年6月 Delphi大版内专家分月排行榜第一
2015年5月 Delphi大版内专家分月排行榜第一
2015年4月 Delphi大版内专家分月排行榜第一
2015年3月 Delphi大版内专家分月排行榜第一
2015年2月 Delphi大版内专家分月排行榜第一
2015年1月 Delphi大版内专家分月排行榜第一
2014年12月 Delphi大版内专家分月排行榜第一
2014年11月 Delphi大版内专家分月排行榜第一
Blank
黄花 2017年11月 Delphi大版内专家分月排行榜第二
2017年4月 Delphi大版内专家分月排行榜第二
2017年1月 Delphi大版内专家分月排行榜第二
2014年10月 Delphi大版内专家分月排行榜第二
2014年9月 Delphi大版内专家分月排行榜第二
Bbs7
本版专家分:10999
Bbs6
本版专家分:5631
Bbs4
本版专家分:1957
Bbs2
本版专家分:325
Bbs7
本版专家分:20072
Blank
红花 2018年8月 Delphi大版内专家分月排行榜第一
2018年7月 Delphi大版内专家分月排行榜第一
2018年4月 Delphi大版内专家分月排行榜第一
2018年3月 Delphi大版内专家分月排行榜第一
Blank
黄花 2016年11月 Delphi大版内专家分月排行榜第二
Blank
蓝花 2011年10月 其他开发语言大版内专家分月排行榜第三
2010年8月 其他开发语言大版内专家分月排行榜第三
2007年5月 其他开发语言大版内专家分月排行榜第三
Bbs5
本版专家分:2545
Bbs5
本版专家分:2545
关于函数返回值的传递问题
大家好!rn小弟对于函数的返回值的传递有各种疑惑如下,请指教!rnrn#1. rn函数如下:rnint fun2(void)rnrn return 55;rnrnrngcc编译成.s后如下:rn_fun2:rnLeh_func_begin2:rn pushq %rbprnLtmp2:rn movq %rsp, %rbprnLtmp3:rn movl $55, -8(%rbp)rn movl -8(%rbp), %eaxrn movl %eax, -4(%rbp)rn movl -4(%rbp), %eaxrn popq %rbprn retrnLeh_func_end2:rnrn<em>问题</em>:为什么要把这个立即数连续两次在栈里操作,最后才放进EAX,这么做是为什么?rnrnrn#2rn返回值是包含9个整型的结构体,code如下:rntypedef structrnrn int a;rn int b;rn int c;rn int d;rn int e;rn int f;rn int g;rn int h;rn int i;rnST_A;rnrnST_A fun3(void)rnrn ST_A a;rnrn a.a = 1;rn a.b = 2;rn a.c = 3;rn a.d = 4;rn a.e = 5;rn a.f = 6;rn a.g = 7;rn a.h = 8;rn a.i = 9;rnrn return a;rnrnrngcc编译成.s后如下:rn_fun3:rnLeh_func_begin3:rn pushq %rbprnLtmp4:rn movq %rsp, %rbprnLtmp5:rn movq %rdi, %raxrn leaq -40(%rbp), %rcxrn movl $1, -40(%rbp)rn movl $2, -36(%rbp)rn movl $3, -32(%rbp)rn movl $4, -28(%rbp)rn movl $5, -24(%rbp)rn movl $6, -20(%rbp)rn movl $7, -16(%rbp)rn movl $8, -12(%rbp)rn movl $9, -8(%rbp)rn movl 32(%rcx), %edxrn movl %edx, 32(%rdi)rn movq 24(%rcx), %rdxrn movq %rdx, 24(%rdi)rn movq 16(%rcx), %rdxrn movq %rdx, 16(%rdi)rn movq (%rcx), %rdxrn movq 8(%rcx), %rcxrn movq %rcx, 8(%rdi)rn movq %rdx, (%rdi)rn movq %rax, -48(%rbp)rn movq -48(%rbp), %raxrn popq %rbprn retrnLeh_func_end3:rnrn<em>问题</em>:在把所有立即数放进栈里的局部变量以后,后面的很晕啊,对指令和寄存器也不太熟,请指点下数据传递路径,最后放在RAX里的是地址对吧?rnrnrn多谢!
关于函数返回值和RESULT的问题
在看书<em>关于</em>函数的部分时看到这样的一段话如下:rnrn“可以将函数要返回的数值赋值给变量Result。如果函数体中存在着一些由于判断而产生rn的分支语句时,要在每一个分支中设置返回值。通常要根据函数的返回值来确定下一步的操rn作。注意这里与C 和C++不一样,把一个值赋给Result,函数并不会结束。"rnrn"注意这里与C 和C++不一样,把一个值赋给Result,函数并不会结束。"rn这句话该怎么理解?rnfunction getchar():char;rnbeginrnresult:='a';rnend;rnch:=getchar;rn执行ch:=getchar;这句后,ch为a,那上面的这句话是不是说在执行ch:=getchar后依然保留了result变量,还是执行ch:=getchar后函数getchar()依然驻留在内存中。rn那procedure声明的过程又如何呢
函数的参数(形参实参)及返回值
函数的参数有形参和实参: 形参就是函数声明时需要接受的参数,可以理解成暂时的占位符,并无实际意义。 实参就是调用函数时传递进函数的具体的实际数据,也就是给占替代位符的的值。 函数体内部的return语句:表示将数据返回给调用者。return后面即使有语句,也不会执行,也就是return后面不执行.return语句可有可无,没有则不反悔任何值或者说返回undefined。 ...
关于函数返回值问题
我在dll中编写了一个函数,如下:rnint __stdcall GetValue(int x,int y)rnrn return (x*y);rnrn调用:rnint c;rnc = GetValue(4,5);rnShowMessage(IntToStr(c));rn但是返回的是函数的地址,如何解决,我要把函数的值付给变量;
关于函数返回值的大小问题
我<em>函数返回值</em>这样写:returns varchar(8000)rn但目前在函数中需要返回值的大小超过了8000,有什么替换方法能使函数返回全部内容?
关于函数返回值存放的问题
如果一个函数如下:rnstring fun();rn如果在调用该函数的时候并没有用变量接受其返回值,那么它的返回值将存放在哪儿?是建立一个常量的临时变量来存储么?
关于函数返回值问题
用ExtractIconEx(...)函数时,明明BCB帮助中写的是返回值为HICON,且我没有设置第二个参数为-1(即不是返回ICON中的个数)为什么编译时出现错误说返回值为uint型不能付给void *类型变量,如果我强行将其转换应该转换符是 HANDLE 、void * 、还是HICONrn例如:rn hIcon=(HANDLE)ExtractIcon(...,0,NULL,NULL,1);rnrn还有就是有的函数可能返回值为int 或 句柄,为什么按照函数要求设置参数返回值类型却不改变呢?一定要强行转换吗?rn
关于函数返回值问题?
(1)rnfunction TfrmEditMainData.CheckContent: Boolean;rnbeginrn Result := True;rn if edtCorpNameC.Text + edtCorpNameE.Text = '' thenrn beginrn ShowMessage(MESSAGE_NOCORPNAME);rn edtCorpNameC.SetFocus;rn CheckContent := False; thenrn beginrn ShowMessage(MESSAGE_NOMANAGER);rn cmbManager.SetFocus;rn Result := False;rn Exit;rn end;rnend;rnrn这两个函数一个是通过Result,一个是通过函数名CheckContent返回。rn我记得以前看书上说在函数中对函数名赋值就结束函数了。rn但是现在(1)赋值后并没有结束函数,而是继续执行下去。rn(2)是一般的做法。rnrn我以前看的是pascal书(黄色封面的),是不是现在在object pascal中有所改变了。
关于WebService函数返回值问题
我在WebService中定义了个函数 返回值是个接口 但是 我在引用的时候他提示我这个接口没有序列化,但是接口怎么序列化啊!!rn
关于函数返回值相加问题
我在message.asp中用function m1() 和function m2()做了两个函数,他们均返回一个数值(rs.recordcount)我用m1()+m2()时,他们的值并没有相加,而是连在了一起,请问如何解决?谢谢,,盼复
c++中将引用作为函数返回值需要注意的一些地方
1.不能返回局部变量的引用。局部变量是在栈里面创建的,函数调用完,就会被释放。引用所引用的地址就没有了。 2.不能返回内部用new分配的内存的引用。因为new了之后,没有delete,所以,会导致内存泄漏。 3.返回静态对象的引用要视情况而定。静态对象只初始化一次,如果有比较的出现,如if((a+b)==(b+c)),会导致条件一直成立。显然这并不是我们要的结果。 返回引用的好处: 可以实
关于自定义函数返回值问题
'有员工信息定义如下rnPublic Type UserInforn ID as stringrn uName as stringrn Age as integerrn Sex as booleanrnEnd Typernrn'用户数组rnPublic Users(n) As UserInfo 'n为任意整数rnrn'查找函数rnPublic Function FindUser(valIndex) as UserInforn Dim i as integerrn if varType(valIndex)=vbString thenrn For i=0 to lbound(Users)rn If ValIndex=Users(i).uName thenrn FindUser=Users(i) rn exit Functionrn End ifrn next irn end ifrn if valindexlbound(users) then Exit Functionrn FindUser=Users(valIndex) rnEnd Publicrnrn'上面这个函数的作用的根据数据的索引号或职工的姓名作为参数都可返回该用户的信息。如:newUser=FindUser(20)或newUser=FindUser("张三")。rnrn'但<em>问题</em>是:如果总共没有21个用户,或“张三”不存在。那么怎么办,我如何在这个函数里判断。rnrn'怎么样才能让函数返回两个值。如果查找到则返加该用户的信息,如果查不到则返回假。rnrnrnrn
关于函数返回值问题
我在一个页面中定义了一个函数,用这个函数作了一个表格!然后在把这个表格作为返回值rn在页面中又定义了一个表格,我要让函数的返回值即那个表格作为页面中的表格的值可结果不行,为何?rnrn之所以用函数是因为我要在很多的页面中调用这个函数以得到那个表格rnrn不知仁兄有办法帮我这个忙!多谢在先!
关于多线程和函数返回值问题
我使用如下方式使用线程rn With myThread1rn .Initialize AddressOf test1 '传递过程地址给线程rn .ThreadEnabled = Truern End Withrn...rn<em>关于</em>test1的定义如下:rnpublic test1() as booleanrn dim return as booleanrn ...rn test1=return rnend publicrn...rn我的<em>问题</em>,在使用线程调用函数test1后,其返回值如何得到(return的值)?rn谢谢,我第一次使用多线程,有很多不懂的。
关于virtual函数返回值问题
struct rn rnrn; rnclass B rn rnpublic: rn virtual A* getDate(); rn; rnrn请问虚拟函数可不可以返回个A的指针的,第一次遇到这样的<em>问题</em>,或者可不可以返回一类的指针?
关于date函数返回值问题
rnrn系统时间为:21:50:00rnrn但是返回值为:13:50:00rnrn分钟和秒都是正确的,为什么小时会出现错误呢??
关于函数返回值的菜鸟问题
如果想利用函数的参数带回返回值,应该怎么写呢?rn比如:rnvoid test(int a,int b,int c)rnrn……rnrn不用return指令。rn在调用这个函数的时候想只输入a的值,b和c是输出。
关于signal函数返回值问题
理论上说,signal成功处理后返回信号以前的处置。rn于是我写了如下一个函数:rn----------------------------rn#include "apue.h"rn#include "error.h"rnstatic void sig_usr1(int);rnstatic void sig_usr2(int);rnrnint rnmain(void)rn Sigfunc* func;rn int i=0;rn if(signal(SIGUSR1,sig_usr1)==SIG_ERR)rn err_sys("can't catch S1");rn if((func = signal(SIGUSR2,sig_usr2))==SIG_ERR)rn err_sys("can't catch S2");rn for(i=0;i);rnrn/*rnoutput:rn rn[root@localhost f10.1]# ./c &rn[1] 3348rn[root@localhost f10.1]# kill -USR1 3348rn rn usr1rn[root@localhost f10.1]# kill -USR2 3348rn rn usr2rn[root@localhost f10.1]#rn[1]+ 段错 rnrnrn*/rn------------------------------------------------rn我预期是这样的:rnfunc可以得到signal前一次的处置,就是sig_usr1,于是打印rnusr1rn但是结果不正确,出现段出错,我觉得这当中没有 什么堆栈分配的<em>问题</em>嘛?rn请赐教
关于return的函数返回值问题
rn各位版主好,小菜最近在学习一个相机的SDK开发包,发现一个<em>问题</em>需要咨询前辈rnrntypedef int BGAPI_RESULT;rn#define BGAPI_RESULT_FAIL 0rnBGAPI_RESULT res = BGAPI_RESULT_FAIL;rnres = BGAPI::countSystems( &system_count );rnrn上面的BGAPI::countSystems()函数的定义如下:/**rn\fn BGAPI_RESULT countSystems( int * count )rn\brief Function category: Entry Point.rn\brief Count the numer of available BGAPI systems.rn\param 'count' (OUT) The numer of available BGAPI systems.rn\retval 'BGAPI_RESULT_OK' No error.rn*/rninline BGAPI_RESULT countSystems( int * count ) return BGAPI_countSystems( count ); rnBGAPI_DECL BGAPI_RESULT BGAPICALL BGAPI_countSystems( int * count );rnrnrn请问如果res = BGAPI::countSystems( &system_count ); 这个语句执行以后,里面的count值为3时(按照SDK里面的系统数量为3时),res是等于1还是等于3?
关于GetBuffer函数返回值问题
各位大牛,先求罩!rnrn我在编写程序的时候,遇到下面<em>问题</em>,先上代码:rn[code=C/C++]rnDWORD dwip;rn int length = ipstr.GetLength(); //ipstr是CString,而且在前面已经为其关联一个ip空间,并且得rn //到 “10.214.5.211”值rnrn char* sz=(char*)ipstr.GetBuffer(length); //将CString转换为char *rn //ipstr.ReleaseBuffer(length);这里是否添加此句并没有影响rn //char f = *(sz+length); 显示结果f = "." !!!!!!!!rnrn if((dwip=inet_addr(sz))==INADDR_NONE) //用dwip来存iprn rn clientlist.InsertString(0,_T("IP错误"));rn return;rn rn ClientAddr.sin_family=AF_INET; //ClientAddr为SOCKADDR_IN类型rn ClientAddr.sin_port = htons(9080);rn ClientAddr.sin_addr.S_un.S_addr = dwip;rnrn if(connect(ClientSocket,(LPSOCKADDR)&ClientAddr,sizeof(ClientAddr)) == SOCKET_ERROR)rn rn clientlist.InsertString(0,_T("连接服务器失败"));//每次都会connect失败而跳到这里面rn return;rn rnrn[/code]rnrn好,开始说<em>问题</em>:rnrn我发现ipstr是"10.214.5.211"没错rn而经过getbuffer函数过后,rnsz指向的是"1"rnsz+1指向的是" "rnsz+2指向的是"0"rnsz+3指向的是" "rnsz+4指向的是"."rnsz+5指向的是" "rnsz+6指向的是"2".rnrn那么sz+length仅指向ipstr的中间某个位置的字符。并没有指向最后的字符"1"rnrn这个是怎么回事?为什么通过getbuffer函数返回后的char指针指向的内容每个字符间都有一个空格?rn这也导致我没办法在后面正确的将sz给dwip,然后再connect socket的时候会出错,是吧?rnrn求指导!!!!!
关于fprintf函数返回值问题
fprintf<em>函数返回值</em>是写入文件的字符个数,现在需要在不向文件写内容(因内容改变)的情况下得到其返回值。若原文件内容为纯字符串,则可用strlen()计算其个数,可是如果是整数,怎么算?fprintf()以整数为内容的返回值为该整数所包含的数字的个数,例如3,返回1;337返回3。rn如果要另写一个函数统计数字,该如何做呢?rn请指教,谢谢!
关于ShellExecute函数返回值问题
HINSTANCE hInstance =ShellExecute(Application->Handle,"Open",FileNamePointer,NULL,FilePathPointer,SW_SHOWNORMAL);rn这样可以获得ShellExecute函数的返回值,但其类型为HINSTANCE类型,我现在如何判断返回的是什么呢?我需要根据不同的返回值进行相应的处理,谢谢!
关于函数返回值问题
请问函数是否可以返回一个SQL查询结果?比如:rnFunction TotalStockQuantity(SrcDBase)rn Set TempDB = Server.CreateObject("ADODB.Connection")rn TempDB.Open("DSN=Lining")rnrn SQLStr = "Select * From " & SrcDBasern TotalStockQuantity= TempDB.Execute(SQLStr)rnEnd Functionrnrn如果不可以,请问如何才可以实现?通过组件技术可以吗?(DLL组件)
请教:关于函数返回值问题!!
请问如果想函数返回两个以上的值,应该怎样做呢?rnfunction obj_abc(s)rna=s+1rnb=s+2rnend functionrnrn如果想返回a和b的值应该怎样写呢?
一个关于函数返回值问题?????
我想定义一个函数searchrnsearch()rnrn int a[2][2]=1,2,3,4;rnreturn a;rnrn然后再定义一个函数calc(),通过seach的返回值做calc()函数的参数,rncalc()函数是计算a[2][2]这个数组的所有元素的和rn但是,怎样返回那个数组的地址呢,search函数的返回值类型怎么写呢?rn大侠帮个忙吧!!
关于isalpha()函数返回值问题
为什么isalpha()函数判断一个字符型变量,当变量为字母时返回值是256而不是1呢rn#include "string.h"rn#include "ctype.h"rn#define MYALPHA(C) isalpha(C)rnmain()rn char a;rn int i;rn scanf("%c",&a);rn i=MYALPHA(a);rn printf("isalpha=%d\n",isalpha(a));rn printf("i=%d\n",i);rn system("pause");rnrn这是代码,有什么<em>问题</em>吗?
关于php的函数返回值问题
<em>关于</em><em>函数返回值</em>的<em>问题</em>如下:rn
关于函数返回值提示的问题
有一函数:rnf_aaa(a: integer, b: integer) return string;rn脚本是:rnif a > b thenrn return 'abc'rnelsern return ''rnend ifrnrn要求:在程序中调用时,如果返回'abc', 那么messagebox提示'abc',rn如果返回'', 则不处理。rn是否这样:rnif f_sn(2, 1) = 'abc' thenrn messagebox('', f_aaa(2, 1))rnend ifrnrn请指教!!!rn
关于函数返回值问题???
一个函数的返回值能是数组类型吗??rn请指教。why?
关于Vlookup函数返回值问题
在用Vlookup函数时,如果查找不到就会返回#N/A,怎么才能让这个#N/A自动变为0.
关于查看函数返回值问题
1、如何在vs中查看<em>函数返回值</em>,假设返回值是一个比较长的表达式?rn2、我调用了中的log函数,为什么在“监视”或者“即时窗口”查看表达式时,总是提示 log CXX0017: 错误: 没有找到符号“log” rn
关于线程函数返回值问题
我创建了一个线程CreateThread(NULL,0,ThreadProc,NULL,0,NULL);来监控某个文件是否被修改,如果修改就重新解析rn这个线程需要一直监控的,当我关闭程序的时候才退出的rn请问一下书中介绍线程终止的 方式最好用 线程函数的返回来终止是什么意思rnrn1、是不是线程函数ThreadProc只要用返回值线程就会终止?例如下面的return 0的时候线程是不是就结束了(10分)rnrn2、麻烦帮我看一下如下的怎样修改(30分)rn[color=#FF0000]DWORD WINAPI ThreadProc(LPVOID pParam)rnrn HANDLE hDir = (HANDLE*)pParam;rn rn //获取目录句柄rn hDir= CreateFile(rn FilePath, // pointer to the file namern GENERIC_READ, // access (read/write) modern FILE_SHARE_READ|FILE_SHARE_WRITE|FILE_SHARE_DELETE, // share modern NULL, // security descriptorrn OPEN_EXISTING, // how to creatern FILE_FLAG_BACKUP_SEMANTICS|FILE_FLAG_OVERLAPPED, // file attributesrn NULL // file with attributes to copyrn );rn if( INVALID_HANDLE_VALUE == hDir ) return false;rn rn char *pcBufferNs=new char[DeFileWaterBuffer];rn FILE_NOTIFY_INFORMATION* pNotify=(FILE_NOTIFY_INFORMATION *)pcBufferNs;rn DWORD BytesReturned;rn while(1)rn rn memset(pcBufferNs,0,DeFileWaterBuffer);rn BytesReturned=0;rn if( ReadDirectoryChangesW( rn hDir,rn pNotify,rn DeFileWaterBuffer,rn TRUE,rn FILE_NOTIFY_CHANGE_FILE_NAME|rn FILE_NOTIFY_CHANGE_DIR_NAME|rn FILE_NOTIFY_CHANGE_ATTRIBUTES|rn FILE_NOTIFY_CHANGE_SIZE|rn FILE_NOTIFY_CHANGE_LAST_WRITE|rn FILE_NOTIFY_CHANGE_LAST_ACCESS|rn FILE_NOTIFY_CHANGE_CREATION|rn FILE_NOTIFY_CHANGE_SECURITY,rn &BytesReturned,rn NULL,rn NULL )) rn rn AnlysFile();//如果文件被修改或编辑,则重新解析文本rn rn rn return 0;rn[/color]rnrn3、如果我需要在关闭程序的时候才结束 线程,应该用哪个函数结束线程?还有ExitThread(dwExitCode)中的[color=#FF0000]dwExitCode[/color]有哪些啊(10分)
函数和返回值
函数 function 什么是函数 函数是可以重复执行的语句块,可以重复的调用 作用: 用于封装语句块,提高代码的重用性 定义用户级别的函数 def语句: 语法: def 函数名([形参列表]): 语句块(代码块) [return 表达式] 作用: 用语句块创建一个函数,并用函数名变量绑定这个函数 语法说明: 函数名是变量,他用于绑定语句块 函数有子集的名字空...
Python函数返回值问题
Python<em>函数返回值</em><em>问题</em> 模块化程序设计中将一个大的程序按功能划分成若干个小程序模块,常用的方法就是将某个确定的功能封装为一个函数,对外提供接口,在其他模块中只需导入该模块即可调用。为了得到确定的结果,对<em>函数返回值</em>的检查显得尤为重要。 <em>问题</em>的发现: 一次作业中,需设计一个学生成绩录入系统,先确定所要录入学生成绩的数量,之后动态地输入学生的信息。输入之前需要检查输入的学生数量是否为数值型,若不...
关于函数返回值
小弟在一篇文章中看到一段话:rnrn如果你希望某函数调用结束后返回相应值,请注意返回变量的作用域和 rn生存期。如你返回的变量只存在于它所在函数,你会很苦恼的,明明对, rn为什么拿不回值呢?这是个初级<em>问题</em>,但往往就是熟练程序员也难免被它烦 rn恼。rnrn谁能告诉我这段话说的是啥意思啊?rnrnrn
关于函数返回值
今天写了个date类:rn其中有一个nextDay()成员函数:就是使时间递增到下一天。rn先看看我写的俩版本源代码。rn[align=center]版本1:[/align]rn[code=C/C++]rnmyDate myDate::nextDay()rnrn static int m[ 13 ] = 0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 ;rn int tempMonth = getMonth();rn myDate tempMd = *this;rn rn tempMd.day += 1;rn if( tempMd.day > m[ tempMonth ] )rn rn tempMd.day = 1;rn tempMd.month += 1;rn if( tempMd.month > 12 )rn rn tempMd.year += 1;rn tempMd.month = 1;rn rn rn rn int y = getYear();rnrn if(( y %400 == 0 )||( y % 100 != 0 && y % 4 == 0 ))rn rn if( tempMonth == 2 && tempMd.day == 29 )rn rn tempMd.day = 1;rn tempMd.month = 3;rn rn rn rn return tempMd;rnrn[/code]rn[align=center]版本2:[/align]rn[code=C/C++]rnmyDate& myDate::nextDay1()rnrn static int m[ 13 ] = 0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 ;rn int tempMonth = getMonth();rn rn this->day += 1;rn if( this->day > m[ tempMonth ] )rn rn this->day = 1;rn this->month += 1;rn if( this->month > 12 )rn rn this->year += 1;rn this->month = 1;rn rn rn rn int y = getYear();rnrn if(( y % 400 == 0 )||( y % 100 != 0 && y % 4 == 0 ))rn rn if( tempMonth == 2 && this->day == 29 )rn rn this->day = 1;rn this->month = 3;rn rn rn rn return *this;rnrn[/code]rnrn1:一个版本是返回值类型是:myDate &rn2:还有一个版本返回值的类型是:myDatern<em>问题</em>:rn1:这两个版本都能实现递增到下一天的功能,那么在实现功能的情况下,使用哪个版本好?【类成员中没有涉及到动态空间分配的情况】rn2:这两个版本的效率哪个高?rn3:在实现<
函数指针,指针函数,返回值为指针的函数
在学习C语言时,一个比较容易混淆的概念就是函数指针、指针函数、返回值为指针的函数。本文将对这三个概念进行区分。指针函数就是返回值为指针的函数,两个本质上是同一事物,只是叫法不同。函数指针就是一个指向函数的指针,本质上是一个指针,只是这个指针指向的对象是函数,而不是一般意义上的存储对象。
关于ajax 作为函数返回值问题
1.首先描述下ajax默认情况下是异步请求,如果要想其结果作为函数值返回,需要设置为同步; 2.如果想当然的在success回调函数中返回值,结果肯定是undefined;因为在success 执行return操作其实就是终止当前函数的执行, 并不是作为函数参数返回; 例子如下:   var checkFlag = false; function addFeeGroupRat
关于eof和scanf返回值
EOF不是一个字符或者数字什么的,而是scanf()函数的一个返回值。 所以scanf("%c",&c);再判断(c==EOF)的做法是无效的,因为scanf()根本不会把EOF当作一个字符写进c; 正确的判断条件应该写作以下形式 (scanf("%c",&c)==EOF) 可以看出EOF就是scanf()的返回值 下面提供用getchar()和scanf()写的两种版本的代码 1.
使用PreparedStatement 的excute返回值问题
今天我用jdbc简单的写了点sql语句,可是通过PreparedStatement 这执行插入数据时,发现明明数据插入成功了,可是execute()的返回值却是false,最后查了下原因发现了<em>问题</em>哦 execute() 函数的返回值是这样说的 Returns:  true if the first result is a ResultSet object; false if the fi
引用的难点:函数返回值是引用(引用当左值)
C++引用使用时的难点: 当<em>函数返回值</em>为引用时 若返回栈变量 不能成为其它引用的初始值 不能作为左值使用 若返回静态变量或全局变量 可以成为其他引用的初始值 即可作为右值使用,也可作为左值使用 C++链式编程中,经常用到引用,运算符重载专题 demo #include using namespace std; //返回值是基础类型,当引用 int getAA1() {
23、Python return语句函数返回值
23、Python return语句<em>函数返回值</em>,Python return语句<em>函数返回值</em>。
c函数调用-不使用函数返回值
c函数调用-不使用<em>函数返回值</em>c函数调用-不使用<em>函数返回值</em>
关于strcmp()返回值的细节问题
先看代码 $x=array("aaa","","ccc","ddd","");$str = "LAMP"; $str1 = "LAMPBrother"; $strc = strcmp($str,$str1);echo $strc; switch ($strc){ case 1: echo"str > str1";
关于函数返回值是指针的问题
<em>关于</em><em>函数返回值</em>是指针的<em>问题</em> 2010-11-07 23:43 608人阅读 评论(0) 收藏 举报 stringdelete存储编译器null语言 先看一个例子,初学者经常碰到的<em>问题</em> [cpp] view plaincopy char *GetString(void)   {    char p[] = "hello world
关于const 和&修饰函数返回值问题
可以说这曾经是困扰我好几天的一个<em>问题</em>,而且还在百度知道上发了贴,最终弄明白了。现在把截图贴出来 <em>关于</em>这个<em>问题</em>的解释如下:
关于链栈函数返回值问题
以前C++没学好。现在很多不懂。请教下各位大虾rnLinkedStack& Add(const T& x)rn// Add x to stack.rnNode *p = new Node;rnp->data = x;rnp->link = top;rntop = p;rnreturn *this;rnrn这样入栈跟可以。rn为何返回值为空类型就不行呢??这边为何要返回this指针?rnvoid LinkedStack::Add(const T& x)rnrnNode *p = new Node;rnp->data = x;rnp->link = top;rntop = p;rnrn还有 。什么时候形参用引用传递 ??这样有什么好处呢???rnrn当函数形参是( &)rn那主函数的指针变量(*)该如何传呢?rn例如 A(&,&)rnmain()rnrn *p;rn A(?);rnrn当函数形参是( *)rn那主函数的指针变量(*)该如何传呢?rn例如 A(*)rnmain()rnrn *p;rn A(?);rnrnrn哎·主要是基础太不扎实了。。这能在这边寻求捷径了。。真是惭愧
关于递归和函数返回值的一个问题
下面一段代码:rn[code=C/C++]rn//返回父亲结点 rnvoid *parent(NODE *&pNode,NODE *&p,NODE *head)rnrn if(head!=NULL)rn rn if(head->pLeft==pNode || head->pRight==pNode)rn rn p=head;rn return p; //问:为什么这里必须要返回一个指针?rn rn if(head->pLeft!=NULL)rn parent(pNode,p,head->pLeft); rn if(head->pRight!=NULL)rn parent(pNode,p,head->pRight);rn rnrn[/code]rn这个parent函数没有返回值,但是如果我把return p去掉就会报错,错误信息是编译器需要一个返回值。如果您知道原因,请告诉小弟我,非常感谢。
一个关于函数返回值的代码问题
[code=C/C++]#includerndouble power(double n,int p);rnint main()rn double x,xpow;rn int exp;rn printf("Please enter a pair of numbers or q to quit\n");rn while(scanf("%lf%d",&x,&xpow)==2)rn rn xpow=power(x,exp);rn printf("%.3g to the power %d is %.5g\n",x,exp,xpow);rn printf("please entet next pair of numbers or q to quit\n");rn rn printf("hope you enjoyed this power trip\n");rn getch();rn return 0;rn rndouble power(double n,int p)rn double pow=1;rn int i;rn for(i=1;i<=p;i++)rn pow*=n;rn return pow;rn [/code]rn这个代码有<em>问题</em>吗?为什么我输入数据却得不到结果(迟迟不出结果)
关于C语言函数返回值问题
如果函数里面定义了一个变量作为返回值,这里需要空间吧。n调用函数接受返回值又需要一份空间吧。n那是不是应该在函数里面分配内存,然后返回指针呢?这样看起来一份空间就搞定了。n就是不知道分配空间和销毁空间的开销如何,划不划得来?还有碎片化的<em>问题</em>!
关于LINQ查询的函数返回值问题
将LINQ查询语句写成方法,方法返回值<em>问题</em>:rnrn[code=C#]rnpublic static IEnumerable GetAdmins()rn rn return from c in dataconn.AdminUserrn select c;rn rn[/code]rn上面这个是正确的,但是下面这个:rn[code=C#]rn public static ? GetSessions()rn rn var querysql = from c in dataconn.UserInforn from o in c.Sessionrn select new Session() o.SessionId, o.Server.ServerName, c.UserName, o.ContectStatus ;rn return querysql;rn rn[/code]rnrn问号的地方该用什么呢?
关于“接口函数的参数传递,函数返回值”的问题
续昨rnrn无参函数调用是成功的。今天试验传递参数出现<em>问题</em>。rnapp server 接口函数定义:rnrnSTDMETHODIMP TServerImpl::Test(LPSTR Param1)rnrn ShowMessage(Param2);rn return(0);rnrnrnclient 调用:rnrnvoid __fastcall TForm1::Button1Click(TObject *Sender)rnrn char *Str;rn Str="Ok";rn IDispatch *Disp=(IDispatch *)(Socket->AppServer);rn IServerDisp TempInterface((IServer *)Disp);rn TempInterface.Test(Str);rnrnrn编译无错,运行时无错,但是无法在服务器弹出message框。断点显示未执行接口函数。不知何故。希望能将“接口<em>函数返回值</em>”的方法也告诉在下。
关于ATL控件函数返回值问题
在我的一个ATL接口中,提供了一个HRESULT返回值的函数,但发现在VB中使用时没有返回值,在VC中如果用Class Wizard添加也是void型的,如果是用import倒入的就还是原来的HRESULT的了。不知大家有没有什么办法让VB和VC的Class Wizard也能得到返回值?是不是必须指定为long或别的东西,而不能是HRESULT啊?
关于函数返回值的一个问题,请教。
我们知道,调用任何一个函数都会返回一个返回值:rnrn比如,rnrna=scanf("%d",&d);rnrn如果d 的值成功录入,那么会scanf 函数会返回一个1 ,并且赋给变量a.rnrn但是我有一个<em>问题</em>想请教一下:如果单纯的调用一个函数,比如rnrnscanf("%d",&d);rnrn这样的话还是执行了scanf 函数,但是 scanf 函数的返回值会放在什么地方? 是系统自动丢弃,还是存放在键盘缓冲区?还是赋给什么变量呢?rn
关于函数返回值是指针的问题.
我自己写了个函数 现在把它加入到类中成为成员函数.rn但是用下面两种方式都发生错误rnrnfloat *CSdfDlg::myfuc(float *x, float *y, int m, int n)rnrnrnfloat * __fastcall CSdfDlg::ColPivot(float *a, int n)rnrn谢谢
VC中函数返回值的存放与传递
fromr:http://blog.claudxiao.net/2010/02/return_value_of_vc/ 教科书中一般说,在C/C++中,函数通过eax寄存器返回结果。如果结果不大于4字节,则eax就是它的值;如果大于4字节,则返回存放它的内存地址。 请思考如下的<em>问题</em>: 如果函数返回的结果大于4字节,那么它被存放到哪里了? 一般情况下,局部变量通过ad
printf函数返回值
printf<em>函数返回值</em>
C++函数返回值不同写法的效率探讨
1.直接返回与局部对象 毫无疑问,局部对象的构造和析构会造成开销。如下示例: class TestObject { public: TestObject(){ memset(data, 0, sizeof(data)); std::cout << "Construct" << std::endl; } TestObject(const TestObject &val){
关于const修饰函数返回值是的问题
我的开发环境是linux+crnrn有一个函数的形式是rnconst char * fun();rntypedef struct MAILrnrn char *from;rnrn*PMAIL;rnrnvoid parser(PMAIL p)rnrn p->from = g_strdup( fun() ); //g_strdup 的作用的用fun()的返回值来初始化p->fromrnrnrnrnmain()rnrnPMAIL pmail;rnparser(pmail);rnrnprintf("from:%s\n",pmail->from);rn rnrnrn这个程序可以编译通过,但运行的时候出现段错误rnrn通过检查发现是因为fun函数的返回值加了const的原因,请问我怎么才能再主函数里面访问parser函数带回的结构里面的值呢?rnrn
关于函数返回值为引用的问题
#include rnusing namespace std;rnrnclass Complexrnrnpublic:rnComplex(int r=0,int i=0):real(r),imag(i)rnvoid display();rnrnint real;rnint imag;rn;rnrnvoid Complex::display()rnrncout<
新手求助,关于函数返回值问题
dll 函数:rnrnEXPORT client* lib_create( uint number, char* pass )//rnrnrnrn client* q;rn if( !if_init )rn lib_init();rn NEW( q, sizeof(client) );rn if( !q )rn DEL( q );rn return NULL;rn rn client_create( q, number, pass );rn q->auto_accept = 1; //temporarily do thisrn return q;rnrnrnEXPORT int lib_login( client* q )//2222222222rnrn int ret;rn pthread_t ptr;rn ret = pthread_create( &ptr, NULL, login_ex, (void*)q );rn if( ret != 0 )rn DBG("thread creation failed. ret=%d", ret );rn rn return ret;rnrnrnrn调用函数 :rnrn HMODULE hInst; rn hInst = LoadLibrary("lib.dll"); rn typedef void (CALLBACK* CallDll)(uint a, char* b);rn CallDll fun= (CallDll)GetProcAddress(hInst,"lib_create"); rn q=fun( uid, password); rn typedef void (CALLBACK* CallDl)(client* q);rn rn CallDl fun1= (CallDll)GetProcAddress(hInst,"lib_login"); rn fun1( q ); rn FreeLibrary(hInst); rnrnrn出现错误 :393 F:\MY~1\8811\my.c void value not ignored as it ought to be rn396 F:\MY~1\8811\my.c [Warning] initialization from incompatible pointer type rnrn是怎么回事啊?
关于DLL下函数返回值的调用问题
我在使用DCP控件中的MD5控件编写一个DLL文件,代码如下:rnFunction MD5(Str:String):String;rnvarrn dcpMD5: TDCP_md5;rn Len,i:integer;rn HashDigest:array[0..31]of byte;rn MiWen:String;rnbeginrn dcpMD5:=TDCP_md5.Create(nil);rn tryrn dcpMD5.Init;rn dcpMD5.UpdateStr(Str);rn dcpMD5.Final(HashDigest);rn Len:=dcpMD5.HashSize;rn MiWen:='';rn For i:=0 to ((Len div 8)-1) dorn MiWen:=MiWen+IntToHex(HashDigest[i],2);rn Result:=MiWen;rn Finallyrn dcpMD5.Free;rn end;rnend;rnrnexportsrn MD5;rnrn然后用程序分别使用动态(显式)和静态(隐式)调用,但都在调用时出错了。rn用动态调用直接在DLL内部出错,出错内容如下:rnAccess violation at address 00373F14 in module 'MD5DLL.dll'. Write of address 00000030.rnrn用静态调用就在程序调用DLL函数后,并正常返回了数据后才出错,错误如下:rnInvalid pointer operation.rnrn但如果把DLL中的返回result:=MiWen;改为ShowMessage(MiWen)就能正常调用了(我加了Dialogs)rnrn我真的不明白错在那里了,DLL需要用到函数返回时需要注意些什么呢?我第1次写DLL,希望各位教育一下,谢谢!!!
文章热词 双目视觉问题 特征点问题 相机标定问题 最优化问题 统计学稳健估计问题
相关热词 c++ 关于unique的问题 c++ system函数返回值 c++调用lua函数返回值 c++关于用类作为类中函数的参数问题 关于python培训班 关于区块链的课程
我们是很有底线的