函数,调试,循环,头文件

news/2024/10/6 3:34:28/文章来源:https://www.cnblogs.com/WZline/p/18288286

1.关于函数

作用:避免代码重复 可以方便维护,因为当多个地方需要用到同样的代码时,如果要做出修改只需要改函数就能整体修改。

函数通常都会有返回值,什么类型的函数返回什么样的类型的值 函数通常分为函数声明和函数参数通常声明放在头文件中 函数定义发在C++文件中 这样做可以在别的C++文件用到相同函数时直接用#include包含头文件使用已被声明定义的函数

int Multiply(const int message)//这一行算是声明
{
return 1//代码块中的是函数定义
}//整型函数的返回值也要是整型 
void Multiply(const int message)
{
return
}//无返回类型的函数

main()//主函数是唯一可以不需要返回值的函数
函数的工作过程:
每次调用函数时,编译器会生成一个call指令穿件堆栈结构,把参数之类的放入堆栈,返回地址也压入栈,跳到二进制不同的部分执行指令,为了返回结果要回到最初调用函数前,像在内存中跳跃着执行函数。

#program once

位置:头文件第一行
作用:防止本头文件被重复包含
例子:如果一个C++文件中重复引用两次相同的文件会发生重定义错误,使用#progam once 第二次被引用的头文件在预处理阶段会被禁用 所以能够避免错误。
相同作用的代码

#ifndef _LOG_H//判断_LOG_H有没有被定义 如果没有 #endif 前的代码被保留
#define _LOG_H//定义_LOG_H
......
......
#endif

这段代码同样能避免重复引用。

关于include后用<>和“”的区别

< >:只用于编译器包含的路径 是C++的标注库 为了区别于c语言库 C++的标准库没有后缀、
" ":是基于当前c++文件的相对路径 例如"../xx.h"是在当前文件的上层目录下找到xx.h文件。
当然" "同样可以引用标准库。

关于调试

F9 设置断点
作用:设置断点后开始运行程序时会在断点处停下 便于查看
F10 逐语句运行代码
作用:按一下执行一条代码
F11:逐过程运行代码
作用:按一下执行一条代码 遇到函数会进到函数内部逐渐运行代码
shift+F11:跳出当前函数
作用:当正在函数中调试时按这个会跳出当前函数 回到函数该函数调用的位置。
在调试时代码左侧的黄箭头是指将要执行的代码。

调试的窗口设置

调出内存窗口方便查看变量的数值变化。

小技巧:当在调试循环时想看循环完成后的结果可以在循环外之后的地方设置断点再运行程序。

关于循环

for循环

写法

1.for(变量声明;条件判断;下次迭代前执行的代码){
.......
.......
}

执行过程
1)变量被声明
2)条件判断是否为真 若为真则执行代码块中内容
3)执行完成后执行下次迭代前执行的代码
5)重复从2)开始执行
特点
for循环中的i变量是迭代进行的
for(int i=0;i<5;i++)这段代码中i的迭代是0,1,2,3,4
发现和数组的索引相同,可以将i变量用于数组索引中

int i=0;
for(;i<5;)
{
i++;
}

此种写法和上面那种等效 int i=0给for循环判断提供了条件 i++ 对影响条件判断的变量做修改

while循环

写法

while(bool)//为真 执行代码块 再检查 
{
}

特点
可以不用声明变量 while里敲个1直接启动

do while()循环

写法

do
{
.......
.......
}while(bool)

特点
先执行代码块中的内容再进行判断,如果为while()中的值为 真 会继续循环

  1. 控制流语句

    作用
    更好的控制循环的实际运行

    continue

    使用位置:只能在循环中使用
    作用:当循环中执行continue时 会忽略后面的代码进入该循环的下一次迭代。
    例子:
for(int i=0;i<5;i++){if(i%2==1)//判断i是不是奇数{continue;//若为奇数就进如下次迭代}std::cout<< i <<std::endl;//最后结果是2 4  //因为当i是奇数的时候直接进入下次迭代了没有执行打印命令}

break

使用位置:循环中或者在switch选择语句中
作用:执行该代码时跳出循环
例子:

while(1)
{
int i=1;
i++;
if(i>5)//当i>5时hui执行break语句跳出循环
break;
}

return

使用位置:任何地方
作用:执行该语句是会退出函数并返回值;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/739711.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ENVI无缝镶嵌、拼接栅格数据的方法

本文介绍基于ENVI软件,利用“Seamless Mosaic”工具实现栅格遥感影像无缝镶嵌的操作~本文介绍基于ENVI软件,利用“Seamless Mosaic”工具实现栅格遥感影像无缝镶嵌的操作。在遥感图像镶嵌拼接:ENVI的Pixel Based Mosaicking工具操作方法这篇文章中,我们介绍了在ENVI软件中通…

2024暑假南京外国语学校c++集训 20240706 测试(J/S-)

A 笔记本电脑第一题没啥好说的了点击查看代码 #include<bits/stdc++.h> using namespace std; int n; set<int> t; pair<int,int> arr[100009]; int main() {ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);cin>>n;for(int i=1;i<=n;i++){cin>…

04-归纳概括题3

123 自己在做题的时候,多问问这个词配不配出现在答题纸上,寻找一种感觉。 这里有几个词是需要注意的。也许后文可以用得到。,4 这里只是引入了“村寨银行”,存在并没有发生什么变化,只是后面说用于干什么、、、,但是还没有结果啊!!!没有体现出结果啊!5 这个管理制度是…

Python 模块的制作,发布,安装

在 Python 当中,一个Python 文件就是一个模块,模块的名字就是Python文件的名字。例如:创建一个 test.py文件,那么test.py 就是一个模块模块的作用:可以使我们有逻辑的去组织我们的 Python 代码,以库的形式去封装功能,非常方便的去让调用者去使用模块中的功能可以定义函数…

PyTorch中的多进程并行处理

PyTorch是一个流行的深度学习框架,一般情况下使用单个GPU进行计算时是十分方便的。但是当涉及到处理大规模数据和并行处理时,需要利用多个GPU。这时PyTorch就显得不那么方便,所以这篇文章我们将介绍如何利用torch.multiprocessing模块,在PyTorch中实现高效的多进程处理。多…

最新扣子(Coze)实战案例:使用扩图功能,让你的图任意变换,完全免费教程

大家好,我是斜杠君。今天和大家分享一个扣子图像流中的「智能扩图」工具节点,这个节点的作用是:可以在扩大图片的同时,并自动生成图像缺失的部分。🧙‍♂️ 大家好,我是斜杠君,手把手教你搭建扣子AI应用。 📜 本教程是《AI应用开发系列教程之扣子(Coze)实战教程》,完…

Vscode连接虚拟机报错

Permission denied, please try again.Vscode 连接虚拟机报错问题解决 问题解释 Permission denied, please try again.出现这个问题通常表示身份验证失败。 可能的原因有SSH用户密码错误 SSH端口非默认 SSH配置文件问题 虚拟机SSH服务问题:可能SSH服务没有正常启动或防火墙阻…

最新扣子(Coze)实战案例:使用图像流做超分,模糊图片秒变清晰,完全免费教程

🧙‍♂️ 大家好,我是斜杠君,手把手教你搭建扣子AI应用。 📜 本教程是《AI应用开发系列教程之扣子(Coze)实战教程》,完全免费学习。 👀 免费扣子Coze教程地址:https://www.bzfree.com/温馨提示:本文内容很多,涉及贯穿了搭建扣子应用的很多知识。没看过教程的同学,…

WebRTC入门

效果展示基础概念WebRTC指的是基于web的实时视频通话,其实就相当于A->B发直播画面,同时B->A发送直播画面,这样就是视频聊天了 WebRTC的视频通话是A和B两两之间进行的 WebRTC通话双方通过一个公共的中心服务器找到对方,就像聊天室一样 WebRTC的连接过程一般是A通过web…

组装8 地图移动

8,地图移动, 建立一个SURFACE,大小是18* unitx 19* unity 地图坐标 X,Y 坐标在显示中间 读取这个坐标 18 * 19 范围的地图数据,贴图到SURFACE 上。 问题 1,OBJECT第三层的贴图是UNITX,HEIGHT的大小, 这个HEIGHT的高度需要读取超过19个UNITY 的OBJECT,应该+12就可…