当前位置: 首页 > news >正文

10.24学习

1.const

在编程中, const  关键字通常用来定义一个常量。常量是程序运行期间其值不能被改变的变量。使用  const  可以提高代码的可读性和可靠性,因为它可以防止程序中意外修改这些值。

不同编程语言中  const  的用法可能略有不同,以下是一些常见的用法:

①C/C++:

在 C 语言中, const  关键字用于定义一个只读变量,其值在初始化后不能被改变。

在 C++ 中, const  可以用于变量、函数参数、成员函数等,表示它们不会修改对象的状态。

②JavaScript:

在 ES6(ECMAScript 2015)及以后的版本中, const  用于声明一个只读的常量。一旦一个常量被声明并初始化后,其值不能被重新赋值。

③Python:

Python 中没有  const  关键字,但通常约定使用全部大写的变量名来表示常量。

④Java:

Java 没有  const  关键字,但可以使用  final  关键字来声明一个不可变的变量。

⑤Swift:

Swift 中使用  let  来声明常量,一旦赋值后,其值不能被改变。

使用  const  的一个简单例子(以 JavaScript 为例):

const MAX_USERS = 100;

console.log(MAX_USERS); // 输出 100

// 下面的代码会抛出错误,因为 MAX_USERS 是一个常量,不能被重新赋值

// MAX_USERS = 200;

在不同的编程环境中, const  的具体行为和限制可能会有所不同,但基本概念是相似的。

 

 

2.printf()函数

 printf() 函数是C语言中用于格式化输出的标准库函数,它定义在 stdio.h 头文件中。以下是 printf() 函数的一些关键知识点:

①函数原型:

int printf(const char *format, ...);

 printf() 函数的第一个参数是一个格式字符串,后面的参数是可变数量的,根据格式字符串中的格式说明符来决定。

②格式字符串: 格式字符串包含了普通字符和格式说明符。普通字符直接输出,格式说明符用于指定后续参数的输出格式。

③格式说明符: 格式说明符以 % 开始,后面可以跟有:

标志字符(如 + 、 - 、 0 、 # 等)

宽度指定符(如 5d 表示至少5位宽)

精度指定符(如 .2f 表示小数点后两位)

长度修饰符(如 h 、 l 、 ll 等)

类型说明符(如 d 、 f 、 s 、 c 、 % 等)

④类型说明符:

 %d  或  %i :整数( int 类型)

 %u :无符号整数( unsigned int 类型)

 %f :浮点数( float 或 double 类型)

 %s :字符串( char 数组)

 %c :字符( char 类型)

 %x  或  %X :十六进制整数

 %p :指针(显示为十六进制)

 %% :输出百分号本身

⑤返回值:  printf() 函数返回成功输出的字符数。如果发生错误,它返回一个负数。

⑥可变参数:  printf() 函数使用C语言的可变参数机制,这允许函数接受不定数量的参数。

⑦使用例子:

printf("Integer: %d\n", 10);

printf("Float: %.2f\n", 3.14159);

printf("String: %s\n", "Hello, World!");

printf("Char: %c\n", 'A');

⑧格式化选项:

 %+d :显示正负号

 %05d :至少5位宽,不足补0

 %-5d :左对齐输出

 %5.2f :浮点数总宽度为5,小数点后两位

⑨错误处理:  printf() 函数不会对错误的格式字符串进行报错,如果格式字符串与提供的参数不匹配,可能会导致不可预测的行为。

⑩安全性:

避免格式化字符串的注入攻击,确保格式字符串是受控的,不被用户输入直接控制。

对于用户提供的数据,使用 snprintf() 等安全版本的函数,以避免缓冲区溢出。

⑪与 sprintf() 的区别:

 printf() 将格式化的数据输出到标准输出(通常是屏幕)。

 sprintf() 将格式化的数据存储到一个字符串中,而不是输出到屏幕。

 printf() 函数是C语言中非常基础且强大的工具,掌握它的使用对于进行有效的数据输出至关重要。

 

3.define

在C语言中, #define  是预处理指令,用于定义宏。以下是  #define  的一些关键知识点:

①预处理指令:  #define  是预处理器的指令之一,它告诉预处理器在编译之前将宏名替换为宏定义的内容。

②宏定义: 使用  #define  可以定义宏,宏可以是简单的值,也可以是更复杂的表达式或代码片段。

③无类型: 与  const  不同, #define  定义的宏没有数据类型,它只是简单的文本替换。

④替换时机: 宏的替换发生在编译之前,预处理器会将代码中所有宏的引用替换为宏定义的内容。

⑤没有作用域: 与变量不同,宏没有块作用域,一旦定义,它将在定义它的文件及其包含的文件中有效,直到遇到  #undef  指令。

⑥多次包含问题: 由于宏没有作用域限制,如果一个头文件被多次包含,宏定义可能会被多次定义,导致编译错误。这通常通过使用条件编译来解决,例如:

#ifndef HEADER_FILE_H

#define HEADER_FILE_H

// 头文件内容

#endif

⑦宏与常量: 尽管宏可以用于定义常量,但推荐使用  const  或  enum  来定义常量,因为它们有类型且作用域受控。

⑧宏运算符:  #define  可以与字符串化运算符  #  和标记粘贴运算符  ##  一起使用,以创建复杂的宏。

字符串化运算符  #  将宏参数转换为字符串。

标记粘贴运算符  ##  用于连接两个令牌。

⑨宏的参数: 宏可以接受参数,类似于函数,但它们在预处理阶段展开,而不是在运行时计算。

⑩宏的副作用: 由于宏的展开是简单的文本替换,可能会引入一些副作用,比如改变代码的语义或导致意外的编译错误。

⑪调试困难: 使用宏可能会使调试变得困难,因为宏的展开结果可能难以阅读,且在调试时看不到宏的值。

⑫宏与内联函数: 在C99标准中,可以使用  inline  关键字定义内联函数,这通常比宏更好,因为内联函数有类型检查,且编译器可以优化它们的调用。

⑬预定义的宏: 编译器会预定义一些宏,如  __LINE__ (当前行号)和  __FILE__ (当前文件名)。

⑭ #define  与  #undef : 使用  #undef  可以取消宏的定义,这在需要取消预定义宏或防止头文件多次包含时很有用。

使用  #define  时,应该谨慎以避免上述问题,并在可能的情况下考虑使用  const  或  enum  来定义常量。

 

相关文章:

10.24学习

1.const 在编程中, const 关键字通常用来定义一个常量。常量是程序运行期间其值不能被改变的变量。使用 const 可以提高代码的可读性和可靠性,因为它可以防止程序中意外修改这些值。 不同编程语言中 const 的用法可能略有不同,以下是一…...

社交媒体与客户服务:新时代的沟通桥梁

在数字化时代,社交媒体已成为人们日常生活中不可或缺的一部分,它不仅改变了人们的沟通方式,也深刻影响着企业的客户服务模式。从传统的电话、邮件到如今的社交媒体平台,客户服务的渠道正在经历一场前所未有的变革。社交媒体以其即…...

设置虚拟机与windows间的共享文件夹

在 VMware Workstation 或 VMware Fusion 中设置共享文件夹的具体步骤如下: 1. 启用共享文件夹 对于 VMware Workstation 打开 VMware Workstation: 启动 VMware Workstation,找到你要设置共享文件夹的虚拟机。 设置虚拟机: 选…...

微信小程序性能优化 ==== 合理使用 setData 纯数据字段

目录 1. setData 的流程 2. 数据通信 3. 使用建议 3.1 data 应只包括渲染相关的数据 3.2 控制 setData 的频率 3.3 选择合适的 setData 范围 3.4 setData 应只传发生变化的数据 3.5 控制后台态页面的 setData 纯数据字段 组件数据中的纯数据字段 组件属性中的纯数据…...

【加密系统】华企盾DSC服务台提示:请升级服务器,否则可能导致客户端退回到旧服务器的版本

华企盾DSC服务台提示:请升级服务器,否则可能导致客户端退回到旧服务器的版本 产生的原因:控制台版本比服务器高导致控制台出现报错 解决方案 方法:将控制台回退到原来的使用版本,在控制台负载均衡查看连接该服务器各个…...

直连南非,服务全球,司库直联再进一步

yonyou 在全球化经济背景下,中国企业不断加快“走出去”的步伐,寻求更广阔的发展空间。作为非洲大陆经济最发达的国家之一,南非以其丰富的自然资源、完善的金融体系和多元化的市场,成为中国企业海外投资与合作的热门目的地。 作为…...

【spring】从spring是如何避免并发下获取不完整的bean引发的思考 什么是双重检查锁 什么是java内存模型

本文将通过简述spring是如何避免并发下获取不完整的bean,延伸出双重检查锁、volatile、JMM的概念,将这些知识点都串联起来; 若发现错误,非常欢迎在评论区指出;csdn博主:孟秋与你 文章目录 双重检查锁(Doubl…...

【计算机网络一】网络学习前置知识

目录 网络中必备概念 1.什么是局域网与广域网? 2.什么是IP地址 3.什么是端口号 4.什么是协议 5.OSI七层模型 6.TCP/IP四层模型 网络中必备概念 本篇文章旨在分享一些计算机网络中的常见概念,对于初学者或者准备学习计算机网络的人会有帮助。 1.什么…...

nuScenes数据集使用的相机的外参和内参

因为需要用不同数据集测试对比效果,而一般的模型代码里实现的检测结果可视化都是使用open3d的Visualizer在点云上画的3d框,展示出来的可视化效果很差,可能是偷懒,没有实现将检测结果投影到各相机的图像上,所以检测效果…...

数据结构与算法:贪心算法与应用场景

目录 11.1 贪心算法的原理 11.2 经典贪心问题 11.3 贪心算法在图中的应用 11.4 贪心算法的优化与扩展 总结 数据结构与算法:贪心算法与应用场景 贪心算法是一种通过选择当前最佳解来构造整体最优解的算法策略。贪心算法在很多实际问题中都取得了良好的效果&am…...

音频编解码器音频文件格式

0 Preface/Foreword 1 音频编解码器 算法压缩越高,那么音频延迟越大,音频效果越好。 1.1 SBC SBC: sub-band coding,自带编码 A2DP强制规定使用的audio编解码器。 在音视频中,为了增加用户体验,规避视频和音频的不…...

FreeSWITCH JSON API

仅举几例: fs_cli -x json {"command" : "status", "data" : ""} fs_cli -x json {"command" : "sofia.status", "data" : ""} fs_cli -x json {"command" : "…...

学习docker第三弹------Docker镜像以及推送拉取镜像到阿里云公有仓库和私有仓库

docker目录 1 Docker镜像dockers镜像的进一步理解 2 Docker镜像commit操作实例案例内容是ubuntu安装vim 3 将本地镜像推送至阿里云4 将阿里云镜像下载到本地仓库5 后记 1 Docker镜像 镜像,是docker的三件套之一(镜像、容器、仓库)&#xff0…...

一文掌握Kubernates核心组件,构建智能容器管理集群

1.Kubernates简要概述 Kubernates(常称为K8s,因省略了“ubernate”中的8个字符)是Google开源的容器编排平台,专为简化和自动化应用服务的部署、扩展和管理而设计。它将应用与底层的服务器抽象开来,提供了自动化的机制…...

正则表达式快速入门

正则表达式是由一系列元字符(Meta-characters)组成的模式,用于定义搜索或替换文本的规则。元字符具有特殊含义,用于指定搜索模式的结构。以下是一些常用的正则表达式元字符及其功能: 字符匹配符 符号含义.匹配除 \r\…...

【小程序】-基础语法(二)

文章目录 知识回顾前言微信小程序开发一、模板语法2.1 数据绑定2.2 条件渲染2.3 列表渲染三、内置API3.1 网络请求3.2 界面交互3.3 本地存储3.4 API 特征3.5 相册/拍照3.6 小练习四、事件处理4.1 事件对象4.2 组件事件五、生命周期5.1 页面生命周期5.2 应用生命周期知识回顾 前…...

js 填充数组

let arr Array.from({ length: 10 }, (_, index) > index)console.log(arr) 人工智能学习网站 https://chat.xutongbao.top...

AI创作3款软件分享,助力内容创作者高效产出优质作品

为了增加创造力和作品质量,许多创作者开始利用人工智能辅助工具。这些工具不仅可以帮助我们迅速生成各种类型的内容,例如文章、绘画、视频广告等,还提供语法检查和优化建议等实用功能。本文将向大家推荐三款适用于Ai先行者、Tracup、Adoe Fir…...

A survey of loss functions for semantic segmentation——论文笔记

摘要 图像分割一直是一个活跃的研究领域,因为它有着广泛的应用范围,从自动疾病检测到自动驾驶汽车。过去五年中,各种论文提出了用于不同场景(如数据偏斜、稀疏分割等)的目标损失函数。在本文中,我们总结了…...

docker部署es与kibana Mac

1. 创建网络 神一样的链接,不用谢: 1.Docker命令链接:黑马整理的docker速成链接 2.jdk11链接:jdk11 3.神资源链接:别点,要脸 注意:es需要先安装jdk环境,推荐jdk11,否则…...

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…...

Vim 调用外部命令学习笔记

Vim 外部命令集成完全指南 文章目录 Vim 外部命令集成完全指南核心概念理解命令语法解析语法对比 常用外部命令详解文本排序与去重文本筛选与搜索高级 grep 搜索技巧文本替换与编辑字符处理高级文本处理编程语言处理其他实用命令 范围操作示例指定行范围处理复合命令示例 实用技…...

测试微信模版消息推送

进入“开发接口管理”--“公众平台测试账号”,无需申请公众账号、可在测试账号中体验并测试微信公众平台所有高级接口。 获取access_token: 自定义模版消息: 关注测试号:扫二维码关注测试号。 发送模版消息: import requests da…...

springboot 百货中心供应链管理系统小程序

一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,百货中心供应链管理系统被用户普遍使用,为方…...

反向工程与模型迁移:打造未来商品详情API的可持续创新体系

在电商行业蓬勃发展的当下,商品详情API作为连接电商平台与开发者、商家及用户的关键纽带,其重要性日益凸显。传统商品详情API主要聚焦于商品基本信息(如名称、价格、库存等)的获取与展示,已难以满足市场对个性化、智能…...

FFmpeg 低延迟同屏方案

引言 在实时互动需求激增的当下,无论是在线教育中的师生同屏演示、远程办公的屏幕共享协作,还是游戏直播的画面实时传输,低延迟同屏已成为保障用户体验的核心指标。FFmpeg 作为一款功能强大的多媒体框架,凭借其灵活的编解码、数据…...

WEB3全栈开发——面试专业技能点P2智能合约开发(Solidity)

一、Solidity合约开发 下面是 Solidity 合约开发 的概念、代码示例及讲解,适合用作学习或写简历项目背景说明。 🧠 一、概念简介:Solidity 合约开发 Solidity 是一种专门为 以太坊(Ethereum)平台编写智能合约的高级编…...

【JavaSE】绘图与事件入门学习笔记

-Java绘图坐标体系 坐标体系-介绍 坐标原点位于左上角,以像素为单位。 在Java坐标系中,第一个是x坐标,表示当前位置为水平方向,距离坐标原点x个像素;第二个是y坐标,表示当前位置为垂直方向,距离坐标原点y个像素。 坐标体系-像素 …...

Xen Server服务器释放磁盘空间

disk.sh #!/bin/bashcd /run/sr-mount/e54f0646-ae11-0457-b64f-eba4673b824c # 全部虚拟机物理磁盘文件存储 a$(ls -l | awk {print $NF} | cut -d. -f1) # 使用中的虚拟机物理磁盘文件 b$(xe vm-disk-list --multiple | grep uuid | awk {print $NF})printf "%s\n"…...

在鸿蒙HarmonyOS 5中使用DevEco Studio实现企业微信功能

1. 开发环境准备 ​​安装DevEco Studio 3.1​​: 从华为开发者官网下载最新版DevEco Studio安装HarmonyOS 5.0 SDK ​​项目配置​​: // module.json5 {"module": {"requestPermissions": [{"name": "ohos.permis…...