【嵌入式开发 Linux 常用命令系列 8 --代码格式修改工具 astyle】

news2024/10/6 22:25:17

文章目录

    • AStyle 介绍
      • Ubuntu 下安装
      • Windows 下安装

AStyle 介绍

在这里插入图片描述

AStyle,全名 Artistic Style,是一款源代码格式化工具。它可以自动格式化 CC++C#,和Java源代码。使用它您可以轻松地对代码进行格式化,以满足您需要的代码风格。它提供了大量的选项,可以非常细致地控制代码的格式化方式。并且,它是一个开放源码的工具,所以您可以自由地使用和修改它。

AStyle的主要功能包括:

  • 缩进风格的控制,包括K&R风格,Allman风格,GNU风格,和自定义风格。
  • 缩进宽度的控制,可以设置为使用空格或Tab,也可以设置Tab的宽度。
  • 代码块大括号的位置控制。
  • 在运算符两侧添加或删除空格。
  • 控制if,for,while等语句的括号是否需要在新的一行开始。
  • 一键格式化整个源文件或选定的代码块。

以下是使用AStyle的一个例子:代码格式化前:

int main(){ printf("Hello, World!"); return 0; }

使用AStyle格式化后(K&R风格,4个空格缩进):

int main()
{
    printf("Hello, World!");
    return 0;
}

命令行示例:

astyle --style=kr --indent=spaces=4 -f myfile.c

这条命令会将 myfile.c 中的代码格式化为K&R风格,并且使用4个空格进行缩进。

Ubuntu 下安装

  1. 使用 apt-get 命令安装
sudo apt-get update -y
sudo apt-get install -y astyle
  1. 源码编译安装
git clone https://github.com/steinwurf/astyle.git
cd astyle
python waf configure --cxx_mkspec=cxx_default
python waf build

在这里插入图片描述


编译好之后将 bulid/cxx_default/astyle 放到 bin 目录下即可使用了:

(*^~^*) ~/astyle/build/cxx_default> cp astyle ~/.local/bin/
(*^~^*) ~/astyle/build/cxx_default> astyle -h

                     Artistic Style 2.06 beta
                     Maintained by: Jim Pattee
                     Original Author: Tal Davidson

Usage:
------
            astyle [OPTIONS] File1 File2 File3 [...]

            astyle [OPTIONS] < Original > Beautified

    When indenting a specific file, the resulting indented file RETAINS
    the original file-name. The original pre-indented file is renamed,
    with a suffix of '.orig' added to the original filename.

    Wildcards (* and ?) may be used in the filename.
    A 'recursive' option can process directories recursively.

    By default, astyle is set up to indent with four spaces per indent,
    a maximal indentation of 40 spaces inside continuous statements,
    a minimum indentation of eight spaces inside conditional statements,
    and NO formatting options.

Options:
--------
    This  program  follows  the  usual  GNU  command line syntax.
    Long options (starting with '--') must be written one at a time.
    Short options (starting with '-') may be appended together.
    Thus, -bps4 is the same as -b -p -s4.

Options File:
-------------
    Artistic Style looks for a default options file in the
    following order:
    1. The contents of the ARTISTIC_STYLE_OPTIONS environment
       variable if it exists.
    2. The file called .astylerc in the directory pointed to by the
       HOME environment variable ( i.e. $HOME/.astylerc ).
    3. The file called astylerc in the directory pointed to by the
       USERPROFILE environment variable (i.e. %USERPROFILE%\astylerc).
    If a default options file is found, the options in this file will
    be parsed BEFORE the command-line options.
    Long options within the default option file may be written without
    the preliminary '--'.

Disable Formatting:
----------------------
    Disable Block
    Blocks of code can be disabled with the comment tags *INDENT-OFF*
    and *INDENT-ON*. It must be contained in a one-line comment.

    Disable Line
    Padding of operators can be disabled on a single line using the
    comment tag *NOPAD*. It must be contained in a line-end comment.

Bracket Style Options:
----------------------
    default bracket style
    If no bracket style is requested, the opening brackets will not be
    changed and closing brackets will be broken from the preceding line.

    --style=allman  OR  --style=bsd  OR  --style=break  OR  -A1
    Allman style formatting/indenting.
    Broken brackets.

    --style=java  OR  --style=attach  OR  -A2
    Java style formatting/indenting.
    Attached brackets.

    --style=kr  OR  --style=k&r  OR  --style=k/r  OR  -A3
    Kernighan & Ritchie style formatting/indenting.
    Linux brackets.

    --style=stroustrup  OR  -A4
    Stroustrup style formatting/indenting.
    Stroustrup brackets.

    --style=whitesmith  OR  -A5
    VTK style formatting/indenting.
    Broken, indented brackets, except for opening brackets.

    --style=banner  OR  -A6
    Banner style formatting/indenting.
    Attached, indented brackets.

    --style=gnu  OR  -A7
    GNU style formatting/indenting.
    Broken brackets, indented blocks.

    --style=linux  OR  --style=knf  OR  -A8
    Linux style formatting/indenting.
    Linux brackets, minimum conditional indent is one-half indent.

参考:https://iq.opengenus.org/install-astyle-in-ubuntu/

Windows 下安装

见:https://sourceforge.net/projects/astyle/

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

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

相关文章

python DevOps

1、用python的 subprocess就能写出ping 255个ip哪个不通。多进程就能快很多&#xff0c;用fork 2、子进程在循环中不写exit(),会发生再生成子进程&#xff0c;核心就是子进程下次循环就少一次&#xff0c;生出孙进程&#xff0c;循环少两次。。。直到结束 windows是没有os.fo…

Mac怎么清理磁盘空间?释放Mac磁盘空间有效方法

相信很多使用macOS系统的小伙伴都收到过提示“磁盘空间已满”消息&#xff0c;尤其是采用SSD固态硬盘的MacBook系列&#xff0c;120G的硬盘空间本就捉襟见肘&#xff0c;使用一段时间后&#xff0c;即使自己没有存放很多大文件&#xff0c; Mac的磁盘很快就满了。那么&#xff…

echarts的柱状图的重叠和堆叠实现两个柱体的显示和之前的差值显示

效果图 主要思路 准备三个柱体&#xff08;原计划&#xff0c;实际进度&#xff0c;差值&#xff09; 原计划和实际进度设置成重叠 {barWidth: 20,// yAxisIndex: 1,z: 1,name: 原计划,type: bar,stack: ab,emphasis: { // 点击柱体其他柱体颜色会变浅disabled: true},label…

山西电力市场日前价格预测【2023-10-27】

日前价格预测 预测说明&#xff1a; 如上图所示&#xff0c;预测明日&#xff08;2023-10-27&#xff09;山西电力市场全天平均日前电价为347.06元/MWh。其中&#xff0c;最高日前电价为618.09元/MWh&#xff0c;预计出现在18: 15。最低日前电价为163.49元/MWh&#xff0c;预计…

VM虚拟机的安装与配置及操作系统的安装

目录 一.操作系统 1.简介 2.常见操作系统 2.1 windows操作系统 2.2 UNIX操作系统 2.3 linux操作系统 2.4 mac操作系统 2.5 嵌入式操作系统 3.个人版本和服务器版本的区别 4.Linux的版本介绍 4.1 Debian 4.2 Ubuntu 4.3 Redhat 4.4 Fedora 4.5 centos 二.VM虚拟…

微前端系列-样式隔离、元素隔离

样式隔离问题 各个应用之间可能相互设置标签样式&#xff0c;会相互影响&#xff0c;或者影响全局样式&#xff0c;比如应用A给body设置样式&#xff0c;应用B也给body设置样式 方法一 样式增加不同前缀 每个应用通过前缀独立区分开&#xff0c;京东micro-app默认是采用的这…

pika皮卡丘RCE靶场

pika |拼接命令&#xff0c;直接 find 寻找根目录下的文件&#xff0c;使用 grep 过滤 127.0.0.1 | find / | grep flag

超声电机工作原理

超声波电机的工作原理 在压电陶瓷振子上加高频交流电压时&#xff0c;利用逆压电效应或电致伸缩效应使定子产生微观机械振动。并将这种振动通过共振放大和摩擦耦合变换成旋转或直线型运动。 超声波驱动有两个前提条件&#xff1a; 需在定子表面激励出稳态的质点椭圆运动轨迹…

NTP(Network Time Protocol 网络时间协议)

作用 大数据产生与处理系统是各种计算设备集群的&#xff0c;计算设备将统一、同步的标准时间用于记录各种事件发生时序&#xff0c;如 E-MAIL 信息、文件创建和访问时间、数据库处理时间等。大数据系统内不同计算设备之间控制、计算、处理、应用等数据或操作都具有时序性&…

荣耀推送服务消息分类标准

前言 为了提升终端用户的推送体验、营造良好可持续的通知生态&#xff0c;荣耀推送服务将对推送消息进行分类管理。 消息分类 定义 荣耀推送服务将根据应用类型、消息内容和消息发送场景&#xff0c;将推送消息分成服务通讯和资讯营销两大类别。 服务通讯类&#xff0c;包…

如何在宝塔面板安装配置MySQL数据库并实现公网访问

宝塔安装MySQL数据库&#xff0c;并内网穿透实现公网远程访问 文章目录 宝塔安装MySQL数据库&#xff0c;并内网穿透实现公网远程访问前言1.Mysql服务安装2.创建数据库3.安装cpolar3.2 创建HTTP隧道 4.远程连接5.固定TCP地址5.1 保留一个固定的公网TCP端口地址5.2 配置固定公网…

【科普】干货!带你从0了解移动机器人(六) (底盘结构类型)

牵引式移动机器人&#xff08;AGV/AMR&#xff09;&#xff0c;通常由一个牵引车和一个或多个被牵引的车辆组成。牵引车是机器人的核心部分&#xff0c;它具有自主导航和定位功能&#xff0c;可以根据预先设定的路径或地标进行导航&#xff0c;并通过传感器和视觉系统感知周围环…

音视频开发(一)ffmpeg 简单学习

前言 简单音视频处理。 学习自&#xff1a; 小破站FFmpeg最强教学丨入门FFmpeg看这一篇就够了丨从入门到放弃系列_哔哩哔哩_bilibili 01 下载、配置_哔哩哔哩_bilibili 基础知识 音视频处理基本都是&#xff1a;采样-处理得到帧队列-编码得到包队列-封装得到文件。 视频…

怎么设置禁止使用U盘

怎么设置禁止使用U盘 在工作中&#xff0c;数据对企业来说是尤为重要的&#xff0c;一旦企业或机构的数据泄露&#xff0c;就会给企业或机构带来极大的损失&#xff0c;企业为了保护公司数据的安全&#xff0c;往往禁用公司电脑使用U盘&#xff0c;禁用U盘也成为了企业的必要措…

Allegro电商平台:为卖家打开全球市场,为消费者带来无限选择

Allegro电商平台是一个全球性的在线零售平台&#xff0c;为卖家提供了一个广阔的市场&#xff0c;让他们可以在全球范围内销售产品。这个平台以其丰富的产品类别、便捷的购物体验和优质的客户服务而受到卖家和消费者的欢迎。本文将介绍Allegro电商平台的特点&#xff0c;以及卖…

【@胡锡进】大模型量化分析- 潍柴动力 000338.SZ

对于预测股票价格的问题&#xff0c;有许多不同的方法可以尝试。下面我将为你分别使用SARIMA、简单移动平均线、指数加权移动平均线、Bollinger带、相对强弱指标、随机指标、线性回归、随机森林回归、支持向量回归法、自回归移动平均法和长短期记忆模型来预测潍柴动力未来3天的…

NVM 安装及使用

1.安装 我使用的是解压版&#xff0c;免安装 github下载压缩包 下载后放在一个【没有中文】的文件夹下&#xff0c;解压 然后需要配环境变量&#xff0c; 首先添加两个变量&#xff0c;分别是刚刚nvm解压的路径&#xff0c;和当前node安装的路径。 然后编辑path变量&#x…

将两个有序顺序表合并为一个新的有序顺序表,并由函数返回结果顺序表

将两个有序顺序表合并为一个新的有序顺序表&#xff0c;并由函数返回结果顺序表 算法思路&#xff1a; 这个其实就是一个归并排序&#xff0c;我们这里两顺序表为升序&#xff0c;要合并成一个升序表 用i和j分别标记顺序表A和顺序表B的元素&#xff0c;然后新表是C 每次从A和…

springboot异步线程池

项目中经常会遇到线程池异步处理一些任务 1.配置信息 # 异步线程配置 # 核心线程数 async:executor:thread:core_pool_size: 10# 最大线程数max_pool_size: 100# 任务队列大小queue_capacity: 20# 线程池中线程的名称前缀name:prefix: kc-async-service-# 缓冲队列中线程的空闲…

玫瑰红葡萄酒的基本知识

在过去的几年里&#xff0c;玫瑰红葡萄酒越来越受欢迎&#xff0c;但是如果你是饮用玫瑰红葡萄酒的新手&#xff0c;你可能想知道它是如何从其他红葡萄酒或白葡萄酒中脱颖而出的。 玫瑰红具有标志性的粉色&#xff0c;很难归类&#xff0c;那它是更适合放在红酒类还是属于白酒…