Linux上的编程主要有两种变成风格

Golang在Linux环境下的POSIX风格socket编程 这里给出一个服务端和客户端,服务端可以接收多个连接,并且利用Go的杀手特性go和channel来替代select进行数据的接受。 服务端: package main import ( "fmt" . "syscall" ) func RecvRoutine(sockfd int, session chan string) { var buffer []byte = make( 阅读详情

Linux上的编程主要有两种变成风格:GNU风格和Linux核心风格,下面我分别介绍之。

下面几条是基于GNU开放源代码方面的要求:

  1. 在任何情况下都不要引用有版权的源代码。
  2. 善意接受别人给您的程序添加的代码,但请记住检查其合法性,即是否也是 GNU 的。
  3. 编写日志文件(Changelog),这将使您的代码更容易维护。

下面是GNU的编程风格,编写代码时应遵循这些基本要求。
1,函数开头的左花括号放到最左边,避免把任何其他的左花括号、左括号或者左方括号放到最左边。
    1)尽力避免让两个不同优先级的操作符出现在相同的对其方式中。
    2)每个程序都应该有一段简短地说明其功能的注释开头。例如:fmt-filter for simplefilling of text.
2,请为每个函数书写注释,以说明函数做了些什么,需要哪些种类的参数,参数可能的值的含义以及用途。
    1)不要在声明多个变量时跨行。在每一行中都以一个新的声明开头。
    2)当在一个if语句中嵌套了另一个if-else语句时,应用花括号把if-else括起来。
3,要在同一个声明中同时说明结构标识和变量,或者结构标识和类型定义(typedef)。
    1)尽力避免在if的条件中进行赋值。
    2)请在名字中使用下划线以分隔单词,尽量使用小写;把大写字母留给宏和枚举常量,以及根据统一的惯例使用的前缀。
    3)命令一个命令行选项时,给出的变量应该在选项含义的说明之后,而不是选项字符之后。

Linux内核编程风格
下面是Linux内核所要求的编程风格:
1,主要缩进格式。
2,将开始的大括号放在一行的最后,而将结束大括号放在一行的第一位。
3,命名系统。变量命名尽量使用简短的名字。
4,函数最好短小精悍,一个函数最好只作一件事情。
5,注释。注释说明代码的动能,而不是说明其实现原理。
看了上面两种风格的介绍,读者是不是觉得太多拉,难以记住?不要紧,Linux有很多工具来帮助我们。除了vim和emacs以外,还有一个非常有意思的小工具indent可以帮我们美化C/C++源代码。
下面用这条命令将Linux内核编程风格的程序quan.c转变成GNU编程风格,代码如下:$ indent -gnu quan.c
利用indent这个工具,大家就可以方便地写出漂亮的代码来。

文章来源:

http://www.huihoo.org/gnu/c.html

http://hi.baidu.com/lammy/blog/item/1d2ed7b46eeb93738bd4b23f.html

Win10无外网热点搭建全指南:纯局域网通信与设备互联 热点并不是只有共享上网一种用途。在很多工程与办公场景中,我们需要的是让手机、笔记本、开发板等设备临时组成一个纯内网,完成文件传输、端口调试或局域网联机,而不需要任何外网出口。Win10笔记本在不连接互联网的状态下,借助系统移动热点或netsh承载网络,完全可以创建一个无外网热点,实现设备间二层互通。其核心在于利用SoftAP建立虚拟无线接入点,并绕开或禁用ICS的NAT转发。掌握这一技术,可在会议、出差、物联网调试等场景中快速搭建临时局域网,无需额外路由器。本文详细梳理三种实现路径、操作步骤及常见故障排查, 阅读详情

相关推荐

【win11+vs 2017+OpenCV4.5.5+Qt5.12配置】详细安装过程+小问题解决

由于Qt5无法与最新的vs2022兼容,扩展工具中一直显示不可用,所以将vs降级成vs2017。在安装Qt的过程中,会选择安装Qt套件,其中就的MCVS 2017,说明vs2017是与qt兼容的。当然也可以用qt creator这一原生IDE。OpenCV版本目前是最新的4.8.0,使用过程中没有什么问题,但是还是安装低版本大概率避免一些玄学问题。

qq_45306739的博客 3350

【转】GNU风格和Linux核心风格

Linux上的编程主要有两种变成风格:GNU风格和Linux核心风格,下面我分别介绍之。下面几条是基于GNU开放源代码方面的要求: 在任何情况下都不要引用有版权的源代码。 善意接受别人给您的程序添加的代码,但请记住检查其合法性,即是否也是 GNU 的。 编写日志文件(Changelog),这将使您的代码更容易维护。 下面是GNU的编程风格,编写代码时应遵循这些基本要求。

龙行天下的专栏 1005

ESP32内存优化实战:关闭WiFi/LWIP功能释放37KB IRAM的隐藏技巧

本文针对ESP32开发中IRAM内存不足的难题,提供了一种通过关闭WiFi和LWIP协议栈的IRAM优化功能来释放宝贵内存空间的实战技巧。该方法最高可释放约37KB的IRAM,有效解决复杂项目(如WiFi+BLE+语音识别)的编译失败问题,并详细阐述了配置步骤、性能权衡与测试验证方法。

redis7keeper的博客 128

编码风格之(4)GNU软件标准风格(2)

例如,当函数定义的头部分发生变化时,VCS日志命令中显示的diff块的头将错误地命名为被修改的函数(通常是在被修改的函数之前定义的函数),因此使用这些diffs来收集被修改函数的名称将产生不准确的结果。如果VCS存储库是可公开访问的,并且更改是单独提交给它的(每个逻辑更改集一次提交),并记录每个更改的作者,那么VCS记录的信息可以用于从VCS日志中生成更改日志,并通过使用合适的VCS命令来回答上述问题。这个原则适用于每一个层次,从最低的(段落中的句子排序)到最高的(手册中的章节主题排序)。

梅花香自苦寒来,宝剑锋从磨砺出。 1622

Canoe主要功能的详细介绍

CANoe是德国Vetor公司推出的一款用于总线开发的设备,全程为CAN open environment。后来随着总线技术的发展,CANoe不仅限于CAN类型的总线开发,还包含LIN、FlexRay、MOST和以太网等开发。在车载网络和ECU开发、测试和分析方面,CANoe几乎长期占据着垄断地位,当然是因为其强大的功能性了。目前用这个工具的主要是整车厂和供应商的网络设计工程是、开发工程师和测试工程师。小编当时安装CANoe的时候也是花了一定的时间和精力,好在没有崩溃。

车载测试 3722

STM32F103C8T6全桥逆变电路PWM波生成(基于HAL库)

全桥逆变电路需要两组开关管相互协同工作,故需要两路PWM控制信号,为了防止电源短路,需要保证同一桥臂的上下两个开关管不会同时导通,故两路PWM在相位上需要相差180°;为了保证高频变压器不会磁饱和,使正负半周PWM占空比相同。但是传统的互补输出达不到调节占空比调节输出电压的效果。......

weixin_45042735的博客 6022

GNU编码标准

GNU编码标准 引用私有程序 接受他人的奉献 修改日志(Change Logs) 与其它实现的兼容性 Makefile惯例 Makefile的通用惯例 Makefile中的工具 为用户提供的标准目标

romandion的专栏 6973

半导体设备隔振必看:如何用天棚阻尼PID控制实现VC-C级振动抑制(含SIMULINK模型)

本文深入探讨了在半导体精密制造中,如何运用天棚阻尼PID控制算法实现VC-C级振动抑制。通过构建高保真单自由度仿真模型,详细解析了从算法原理、SIMULINK实现到参数整定的全链路方案,并针对谐波扰动提供了陷波滤波器设计方法,为工程师提供了从仿真到实践的完整主动隔振技术指南。

pz89012345的博客 537

GNU编码风格学习

GNU编码风格学习函数顶头写空格对齐命名 函数顶头写 函数返回类型单独占一行 空格 左括号之前 逗号之后 运算符两边 对齐 函数参数换行并对齐 命名 函数名、变量名小写,下划线分割 宏定义、枚举常量大写 ...

雪夜的博客 798

本地生成无限量的AI图像和视频——无需网络,无限制,本地人工智能图像和视频生成的实用指南

我们将使用ComfyUI,这是一个功能强大的基于节点的 AI 图像和视频生成可视化界面。如果您是 ComfyUI 的新手,请不要担心。ComfyUI是什么?ComfyUI 是一款可视化工具,可让您在自己的计算机上生成 AI 图像和视频。您无需一次性理解所有内容。在本指南中,我们将从现成的工作流程入手,逐步帮助您建立信心。乍一看,内容似乎很庞杂——但本指南将着重于:-简单的工作流程-预构建示例-最少的配置我想向你展示使用这个工具最简单的工作流程。

iCloudEnd的博客 1801

把 ABAP SQL 窗口函数讲透:从 OVER 到 LEAD、RANK 与累计分析

ABAP SQL窗口函数在不丢失明细记录的前提下,为每行数据提供组内统计和排名功能。它通过OVER子句定义计算窗口,支持三类函数:聚合型(AVG/SUM等)、排名型(ROW_NUMBER/RANK等)和取值型(LEAD/LAG)。相比GROUP BY会合并多行数据,窗口函数保留原始记录同时附加计算结果,特别适合需要保留明细又要展示统计信息的业务场景,如销售排名、客户分层分析等。语法核心是OVER子句,通过PARTITION BY分组,ORDER BY排序,可灵活定义计算范围。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1272

linux程序命令行选项的3种风格:unix、gnu、x toolkit

In Unix-like systems, the ASCII hyphen-minus is commonly used to specify options. The character is usually followed by one or more letters. Two hyphen-minus characters (--) often indicate that the rem...

weixin_34380781的博客 441

NVIDIA Isaac GR00T N1 人形机器人强化学习入门教程(二)详细步骤

LeRobot 格式 1.1 加载数据集 要加载数据集,我们需要定义以下 3 项内容: 在数据中显示图像帧 我们还可以对 LeRobotSingleDataset 类中的数据进行一系列转换。下面展示了如何对数据进行转换。 现在看看应用转换后的数据有何不同。 例如,对状态和操作进行规范化和串联,对视频图像进行裁剪、调整大小和颜色抖动。 二、GR00T 推断 本教程介绍如何使用 GR00

2506_90492529的博客 3012

linux内核_Linux内核编程风格简介

01不同的语言风格当今世界上一共有5000多种语言。不同的国家、民族和地区,说着不同的语言。每个民族不一定有自己的文字,但一般都会有自己的语言。即使是同一种语言,在不同的时代、不同的地区和群体,说话的方式和语言风格也各不相同。同样是刘备《三顾茅庐》的故事,如果换成不同的人去说,你会发现说话方式和语言风格大相径庭:TVB腔:呐,做人呢,最重要的是开心。玄德你饿不饿,我煮碗面给你吃。日系风:...

weixin_39870238的博客 285

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

gnu代码规范和Linux内核,GNU风格和Linux核心风格

Linux上的编程主要有两种变成风格:GNU风格和Linux核心风格,下面我分别介绍之。下面几条是基于GNU开放源代码方面的要求:在任何情况下都不要引用有版权的源代码。善意接受别人给您的程序添加的代码,但请记住检查其合法性,即是否也是 GNU 的。编写日志文件(Changelog),这将使您的代码更容易维护。下面是GNU的编程风格,编写代码时应遵循这些基本要求。1,函数开头的左花括号放到最左边,避...

weixin_39851974的博客 785

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Linux下C语言编码的风格

Linux下C语言编码的风格 Linux 作为 GNU家族的一员,其源代码数以万计,而在阅读这些源代码时我们会发现, 不同的源代码的美观程度和编程风格都不尽相同。 例如下面的glibc 代码: static voidrelease_libc_mem (void) { /*Only call the free function if we  still are running

thanklife的专栏 2718

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

linux内核个性化,Linux 内核编程风格

Linux 内核编程风格原文出自Linux 源码/usr/src/linux/documents/本文在http://gem.ncic.ac.cn/~xhg/documents/CodingStyle.html这篇短小的文章是对Linux内核编程风格的建议.编程风格非常的个性化,而且,我并不想将我的观点强加给任何人,但是为了变于维护,我不得不提出这个观点.详情如下:在最开始,我应该写出GNU 编程...

weixin_28487725的博客 229

Linux下C语言编程风格和规范

Linux有独特的编程风格,在内核源代码目录Documentation/CodingStyle,详细描述代码风格。 建议大家可以去看一下,老外写技术文档还是很有意思的,上来就狂喷,“你不这样写就会完蛋,异教徒才不这样写……”,没有国内那么刻板,多阅读英语文档对技术增长很有帮助。

闪耀大叔的博客 3219

linux 内核编程风格规范

摘抄自:linux内核源码 Chinese translated version of Documentation/CodingStyle If you have any comment or update to the content, please pos

blank_bird的专栏 1659

linux内核编程pdf下载,linux内核编程风格.pdf

linux内核编程风格.pdf(20页)本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦!15.9 积分Linux kernel coding styleThis is a short document describing the preferred coding style for thelinux kernel. Coding style is very ...

weixin_36229293的博客 289

编程入门之编码风格

  作为编程的工作人员,代码风格也是非常重要的。编译器一般不会挑起难看的代码,能够顺利编译的代码不一定是好代码,好的代码一定能够顺利编译,怎么才能写出好代码。好的代码是需要好的风格的。本人主要是在linux下编程,所以编程风格主要是使用linux内和风格。 一、标识符,变量名、函数名、常量、结构类型名、枚举类型名、联合类型名、自定义类型名等   1、禁止使用函数拼音作标识符,更不容易理解; ...

weixin_30787531的博客 151

Linux 内核编程风格

Linux 内核编程风格(518 个字於此篇帖子)(已阅读: 1177 次)  这篇短小的文章是对Linux内核编程风格的建议.编程风格非常的个性化,而且,我并不想将我的观点强加给任何人,但是为了变于维护,我不得不提出这个观点.详情如下:   在最开始,我应该写出GNU编程风格的标准而不用理会它.不要理会他们,它只是一个符号表情而已.   好,让我们开始吧!   第一章:缩进格式  Tab

collide的专栏 1593

Linux内核编程规范与代码风格

source: https://www.kernel.org/doc/html/latest/process/coding-style.html translated by trav, travmymail@gmail.com 这是一篇阐述Linux内核编程代码风格的文档,译者以学习为目的进行翻译。 1 缩进 Tab的宽度是八个字符,因此缩进的宽度也是八个字符。有些异教徒想让缩进变成四个字符,...

weixin_30398227的博客 251

Linux内核编程风格

这篇短小的文档用于描述linux内核编程中推荐的编程风格。编程风格是很个人 化的东西,我不想把我的观点_强加_给任何人,但这是我必须维护的代码中所遵守 的,我也建议其他部分的代码也能遵守它。请至少给这里的观点一些考虑。 首先,我建议你打印一份GNU代码风格,不是去读它,而是把它烧了,这是个很 不错的姿态。 不废话了,下面就是Linux内核编程风格: 第一章:缩进   制表符(ta

Dark_gezi的博客 998

Linux内核编程风格(ZT) (yinyong)

Linux内核编程风格(ZT) 原文见 /usr/src/linux/Documentation/CodingStyle。 Linux内核编程风格 这篇短小的文档用于描述linux内核编程中推荐的编程风格。编程风格是很个人 化的东西,我不想把我的观点_强加_给任何人,但这是我必须维护的代码中所遵守 的,我也建议其他部分的代码也能遵守它。请至少给这里的观点一些考虑。 首先,我建议你打印一份GNU

最后的黑客 1237

18、Linux下编程风格

在前面曾总结过微软环境下编程的规范【1】,但是在linux下,没有自动补起,以及没有像VS那样高级好用的可视化开发工具,如果变量,函数定义太复杂,敲的也累,下面总结linux下编程风格,资料来源于网络。 一、GNU风格 1.函数返回类型说明和函数名分两行放置,函数起始字符和函数开头左花括号放到最左边, 例如: static char * main (argc, argv)    i...

weixin_33932129的博客 275
上一篇: 【转】 ldo工作原理和参数
下一篇: 编译出错提示
continue_
博客等级 码龄18年 7粉丝 2原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值