C:宏:编程风格:井号与define之间的空格

在这一篇中有提到,井号与define之间空格,可能导致搜索上的一些问题。
https://mzhan017.blog.csdn.net/article/details/135289451

今天看到有专门做这个空格的修改:
https://sourceware.org/git/?p=glibc.git;a=commitdiff;h=fcf70d4114db9ff7923f5dfeb3fea6e2d623e5c2;hp=3f3822198993be18d4d9ccb1593eea274dbd2ba0

应该是为了阅读代码的方便性,因为如果不加空格会对代码阅读造成一定的困难;但是为什么不直接将整个#define都缩进呢?例如下面的一段
glibc/elf/dl-load.h

/* The right way to map in the shared library files is MAP_COPY, whichmakes a virtual copy of the data at the time of the mmap call; thisguarantees the mapped pages will be consistent even if the file isoverwritten.  Some losing VM systems like Linux's lack MAP_COPY.  All weget is MAP_PRIVATE, which copies each page when it is modified; thismeans if the file is overwritten, we may at some point get some pagesfrom the new version after starting with pages from the old version.To make up for the lack and avoid the overwriting problem,what Linux does have is MAP_DENYWRITE.  This prevents anyonefrom modifying the file while we have it mapped.  */
#ifndef MAP_COPY
# ifdef MAP_DENYWRITE
#  define MAP_COPY      (MAP_PRIVATE | MAP_DENYWRITE)
# else
#  define MAP_COPY      MAP_PRIVATE
# endif
#endif

应个人的阅读爱好,其实只要养成一种阅读习惯,就可以,不管是前加空格还是后加空格,只要可用表示出if缩进块的功能就好。

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

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

相关文章

第二节 linux操作系统安装与配置

一:Vmware虚拟机安装与使用   ①VMware是一个虚拟PC的软件,可以在现有的操作系统上虚拟出一个新的硬件环境,相当于模拟出一台新的PC ,以此来实现在一台机器上真正同时运行多个独立的操作系统。   ②VMware主要特点&#xff1a…

ES6 Module详解

✨ 专栏介绍 在现代Web开发中,JavaScript已经成为了不可或缺的一部分。它不仅可以为网页增加交互性和动态性,还可以在后端开发中使用Node.js构建高效的服务器端应用程序。作为一种灵活且易学的脚本语言,JavaScript具有广泛的应用场景&#x…

SELinux 基本原理

本文讲述 SELinux 保护安全的基本原理 首发公号:Rand_cs 安全检查顺序 不废话,直接先来看张图 当我们执行系统调用的时候,会首先对某些错误情况进行检查,如果失败通常会得到一些 error 信息,通过查看全局变量 errno …

Python PDF转换为图片的解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…

Kingbase单实例场景下更新license步骤

查进程 确定在运行的kingbase服务是在用的服务,避免因多个kingbase服务混淆 [kingbasenode1 V8]$ ps -ef | grep Kingbase kingbase 3190 1 0 10:06 ? 00:00:00 /KingbaseES/V8/Server/bin/kingbase -D /data 查看license信息 license文件位置&…

基于Flutter构建小型新闻App

目录 1. 概述 1.1 功能概述 1.2 技术准备 1.3 源码地址 2. App首页 2.1 pubspec依赖 2.2 热门首页组件 2.2.1 DefaultTabController 2.2.2 Swiper 2.3 新闻API数据访问 2.4 热门首页效果图 3. 新闻分类 3.1 GestureDetector 3.2 新闻分类效果图 4. 收藏功能 4…

sentinel相关面试题及答案

数据结构和算法 1、什么是哨兵值?它在算法中是如何使用的? 哨兵值是在计算中用作标记或信号的特殊值,通常用于指示数据结构的边界或结束,或者作为检测特定条件的触发器。在算法中,哨兵值的使用可以简化代码并提高效…

知识付费小程序系统源码:轻松实现 一站啊运营模式+完整的代码包 附安装部署的矫教程

在当今社会,知识的价值愈发凸显。人们对于优质内容的渴求,使得知识付费市场不断扩大。然而,对于许多内容创作者而言,搭建和维护一个知识付费平台的成本较高,技术门槛也相对较高。下面小编来和大家分享一款知识付费小程…

静态类成员分配

{ // set size // allot storage // initialize pointer // set object count 这条语句将静态成员 num_strings的值初始化为0。请注意,不能在类声明中初始化静态成员变量,这 是因为声明描述了如何分配内存,但并不分配内存。您可以使用这种格式来创建对象,从而分配和初始化 内…

【Reading Notes】(2)

文章目录 FreestyleHip-hop dance and MusicProgrammerMaster Freestyle 都说人的成长有三个阶段,第一个阶段认为自己独一无二,天之骄子;第二个阶段发现自己原来如此渺小,如此普通,沮丧失望;第三阶段&#…

K8S学习指南(58)-K8S核心组件Kubelet简介

文章目录 前言一、设计思想1.1 分而治之的原则1.2 声明式管理 二、主要功能2.1 容器生命周期管理2.2 资源管理2.3 网络管理 三、内部工作原理3.1 Pod描述同步3.2 容器运行时接口3.3 健康检查和自愈 四、常见的故障排查4.1 日志分析4.2 资源不足4.3 网络问题 五、总结 前言 Kub…

软考高级哪个简单?

对于没有相关知识基础的考生而言,软考高级考试具有一定的难度。软考高级考试包括五个科目,分别是信息系统项目管理师、系统分析师、系统规划与管理师、系统架构设计师以及网络规划设计师。 不同科目的难易度并不会相差太大,不过在高级考试中&…

为什么德国如此重视可持续性有机葡萄酒种植?

可持续性在德国葡萄栽培中越来越重要,它包括对葡萄酒行业的生态、经济和社会问题给予同等的考虑。在过去的几年里,世界范围内出现了许多不同的可持续葡萄酒生产项目。 以可持续发展为导向的酒庄是如何运营的?作为可持续发展整体方法的一部分&…

「MySQL运维常见问题及解决方法」

「MySQL运维常见问题及解决方法」 一、查看MySQL数据库安装路径1.1、方式一 --SHOW VARIABLES LIKE basedir;1.2、方式二 --ps -ef | grep mysql 二、MySQL设置连接数与最大并发数2.1、永久生效--修改my.cnf文件2.2、临时生效--通过命令设置的全局变量 三、其他相关参数设置四、…

一文初识Linux进程(超详细!)

🎬慕斯主页:修仙—别有洞天 ♈️今日夜电波:HEART BEAT—YOASOBI 2:20━━━━━━️💟──────── 5:35 🔄 ◀️ ⏸ ▶️ ☰ …

信息安全评估

评估基础 安全评估是什么? 是针对潜在影响正常执行其职能的行为产色产生干扰或破坏的因素进行识别、评价的过程 广义上是综合的包括测试、检测、测评、审核、评估检查等进行综合评价和预测;狭义的就是某个信息安全风险风评 为什么要做安全评估? 是…

3个值得推荐的WPF UI组件库

WPF介绍 WPF 是一个强大的桌面应用程序框架,用于构建具有丰富用户界面的 Windows 应用。它提供了灵活的布局、数据绑定、样式和模板、动画效果等功能,让开发者可以创建出吸引人且交互性强的应用程序。 HandyControl HandyControl是一套WPF控件库&…

DevC++ easyx实现视口编辑--像素绘图板与贴图系统

到了最终成果阶段了,虽然中间有一些代码讲起来没有意思,纯靠debug,1-1解决贴图网格不重合问题,这次是一个分支结束。 想着就是把瓦片贴进大地图里。 延续这几篇帖子,开发时间也从2023年的4月16到了6月2号,80小时基本…

机器学习(二) -- 数据预处理(2)

系列文章目录 机器学习(一) -- 概述 机器学习(二) -- 数据预处理(1-3) 未完待续…… 目录 系列文章目录 前言 四、【数据清洗】 1、缺失数据的检测与处理 1.1、检测与统计 1.2、处理 1.2.1、删除缺…

Postgresql源码(119)PL/pgSQL中ExprContext的生命周期

前言 在PL/pgSQL语言中,执行任何SQL都需要通过SPI调用SQL层解析执行,例如在SQL层执行表达式的入口: static bool exec_eval_simple_expr(PLpgSQL_execstate *estate,PLpgSQL_expr *expr,Datum *result,bool *isNull,Oid *rettype,int32 *re…