C语言宏函数return c语言的宏( 二 )


C语言的return是什么意思return -1表示函数返回值是-1 。
return 表示把程序流程从被调函数转向主调函数并把表达式的值带回主调函数,实现函数值的返回,返回时可附带一个返回值,由return后面的参数指定 。
return通常是必要的,因为函数调用的时候计算结果通常是通过返回值带出的 。
如果函数执行不需要返回计算结果,也经常需要返回一个状态码来表示函数执行的顺利与否(-1和0就是最常用的状态码) , 主调函数可以通过返回值判断被调函数的执行情况 。
在函数中 , 如果碰到return 语句,那么程序就会返回调用该函数的下一条语句执行,也就是说跳出函数的执行,回到原来的地方继续执行下去 。但是如果是在主函数中碰到return语句,那么整个程序就会停止,退出程序的执行 。
扩展资料
注意事项:
1、一个c程序由一个或多个程序模块组成,每一个程序模块作为一个源程序文件 。对较大的程序,一般不希望把所有内容全放在一个文件中,而是将它们分别放在若干个源文件中,由若干个源程序文件组成一个c程序 。这样便于分别编写和编译 , 调高调试效率 。一个源程序文件可以为多个c程序公用 。
2、一个源程序文件由一个或多个函数以及其他有关内容(如指令 , 数据声明与定义等)组成 。一个源程序文件是一个编译单位,子啊程序编译时是以源程序文件为单位进行编译的,而不是以函数为单位进行编译的 。
3、c程序的执行是从main函数开始的 , 如果在main函数中调用其他函数,在调用后流程返回main函数 , 在main函数中结束整个程序的进行 。
4、所有函数都是平行的,即在定义函数时是分别进行的,是互相独立的 。一个函数并不从属于另一个函数 , 即函数不能嵌套定义 。函数间可以互相调用,但不能调用main函数 。main函数是被操作系统调用的 。
参考资料来源:百度百科-return
c语言函数的return谁能仔细给我解释一下?事实上 无论是return ; 还是return X;
在汇编上都只有一条指令:ret(retn)
只不过对于return X; 会在 执行ret指令之前对eax寄存器赋值:
如果是return 0 ; 可能编译器会这样做:
xor eax,eax
ret
其他情况类似
然后从C语言角度讲
对于返回类型为void的函数
函数体内可以出现return;语句来表示结束本函数的执行
这个时候eax还是有值的 , 因为 函数返回类型是void,因此在调用该函数的地方不可能会去用该函数的返回值,也就意味着该返回值是毫无意义的
楼主想问的 单独的return;语句,对于这行代码,一般只用在返回类型为void的函数体内
若出现在非void返回类型的函数体内 , 那么返回值是隐含在寄存器eax中的
然后对于有返回值的函数来说
return后面是肯定需要跟一个值的
这个值是被送入寄存器eax带出来的~
我说再多 也许还是会有人不信(本人玩逆向的,这一切信不信那是你们的事,我只能把事实告诉你们,我也只能做到这样了)
下面直接上代码上图:
(微软任何C/C++编译器、VC/VS这些、都支持编译此代码 , 没有警告,没有错误)
注:主函数不主函数的return都是没有区别的
但是main函数很特别,特别在它有好多种写法,标准C真正的主函数返回类型是int
有2个参数 , 一个是命令行参数个数,一个是命令行参数
windows下面的主函数可以有三个参数,前两个参数跟标准C一样,第三个参数是环境变量

推荐阅读