制表符与空格 — C 中的 Makefile

开发人员之间关于制表符与空格的争论围绕着代码中缩进的首选方法。 “制表符”的拥护者认为,制表符在语义上对于缩进来说是正确的、可定制的并且更易于访问,特别是对于那些有视觉障碍的人来说。他们建议使用制表符进行缩进,使用空格进行对齐。 “空格”的倡导者强调一致性,因为空格可以确保代码格式在不同的编辑器和平台上显示相同,从而避免选项卡大小可变的问题。在团队环境中通常首选这种方法,以保持统一的代码外观。

但是如果你用C语言编程并且需要使用Makefile,那就别无选择——你必须使用‘Tabs’。

Makefile 中制表符的要求源自 Stuart Feldman,Unix 开发人员和“make”实用程序的创建者。 Feldman 选择制表符来帮助区分 Makefile 中的命令和其他文本。具体来说,“make”早期实现中使用的 Lex 解析器很难区分制表符和空格,从而导致了制表符的强制要求。尽管费尔德曼承认这是一个次优的决定,但约定仍然存在。

制表符与空格 — C 中的 Makefile

上面的屏幕截图显示了一个 Makefile。此示例使用 notepad++ 中的“显示符号”功能 – 使用它您可以清楚地区分制表符和空格 – 箭头表示第 8、12 和 16 行使用了制表符。如果您使用空格而不是缩进这些行选项卡,程序将无法运行 – 您将收到错误:

Makefile:line_number: *** 缺少分隔符。停下来。

因此,您在编程时是否喜欢制表符或空格取决于您。但如果您在 C 中使用 Makefile,Stuart 让您别无选择。

如果您还没有看过上面的《硅谷》剧集(S3 Ep6)——请观看一下,就像整个系列一样,它非常有趣。

本·桑托拉 — 十月

以上就是制表符与空格 — C 中的 Makefile的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1461092.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月18日 13:02:58
下一篇 2025年12月16日 03:44:53

相关推荐

  • Tabs vs Spaces – Makefiles in C

    硅谷 S3 – 第 6 集 开发人员之间关于制表符与空格的争论围绕着代码中缩进的首选方法。 “选项卡”的拥护者认为,选项卡在缩进方面在语义上是正确的、可定制的并且更易于访问,特别是对于那些有视觉障碍的人来说。他们建议使用制表符进行缩进,使用空格进行对齐。 “空格”的倡导者强调一致性,因为…

    好文分享 2025年12月18日
    000
  • C语言数据结构:面向对象编程中数据结构的最佳实践

    面向对象编程中数据结构的最佳实践 在面向对象编程(OOP)中,数据结构是用来组织和存储数据的关键组成部分。遵循最佳实践对于设计高效且可维护的应用程序至关重要。 选择合适的结构 OOP 提供了各种数据结构,例如数组、链表、树和图。对于特定任务,选择正确的结构至关重要。例如: 数组:适合存储连续的元素集…

    2025年12月18日
    000
  • C语言条件编译:新手入门到实战应用的详尽指南

    c 语言条件编译是一种根据编译时条件选择性编译代码块的机制,入门方法有:使用 #if 和 #else 指令根据条件选择代码块。常用条件表达式包括 stdc、_win32 和 linux。实战案例:根据操作系统打印不同消息。根据系统位数使用不同的数据类型。根据编译器支持不同的头文件。条件编译增强了代码…

    2025年12月18日
    000
  • C语言数据结构:数据结构在人工智能中的关键作用

    C 语言数据结构:数据结构在人工智能中的关键作用 概述 在人工智能领域,数据结构对于处理大量数据至关重要。数据结构提供了一种组织和管理数据的有效方法,优化算法和提高程序的效率。 常见的数据结构 立即学习“C语言免费学习笔记(深入)”; C 语言中常用的数据结构包括: 数组:一组连续存储的数据项,具有…

    2025年12月18日
    000
  • C语言文件操作:如何读取文件?

    C 语言文件操作:读取文件 简介 文件处理是 C 语言编程中至关重要的部分,它允许程序与外部存储设备(例如磁盘和闪存驱动器)交互。本文将探讨如何使用 C 语言读取文件。 读取文件的步骤 立即学习“C语言免费学习笔记(深入)”; 打开文件:使用 fopen 函数打开文件。该函数需要两个参数:文件名和打…

    2025年12月18日
    000
  • C语言条件编译:庖丁解牛,彻底解决疑难问题

    C 语言条件编译:庖丁解牛,彻底解决疑难问题 概述 条件编译是 C 语言中一种强大的工具,它允许根据特定条件编译或排除代码块。它对于创建可移植、可定制和可维护的代码非常有用。 语法 立即学习“C语言免费学习笔记(深入)”; 条件编译指令有两种主要形式: 预处理器宏:由 #define 定义,并在代码…

    2025年12月18日
    000
  • C语言条件编译:从基础到高级的疑难解答全攻略

    条件编译允许开发者在编译时根据条件动态更改代码。c语言使用#指令实现条件编译,包括:宏定义 (#define)有条件编译 (#ifdef、#ifndef、#if、#elif)宏展开参数 (#、##)宏函数调用 (#(宏名)(参数列表))条件编译符号 (__line__、__file__)掌握这些技术…

    2025年12月18日
    000
  • C语言数据结构:常见面试问题剖析

    数据结构是 c 语言面试中的关键知识点:指针和数组:理解指针指向数组起始地址并用于访问和修改数组元素。链表:实现单向链表,掌握创建、插入和删除操作。栈:利用数组构建栈,理解压栈、出栈和查看栈顶操作。队列:使用数组实现队列,掌握入队、出队和查看队首操作。 C 语言数据结构:常见面试问题剖析 在许多编程…

    2025年12月18日
    000
  • C语言数据结构:数据结构在图像处理中的运用

    数据结构在图像处理中至关重要,c语言提供了数组、链表、栈和队列等数据结构。数组用于存储图像数据,链表用于表示边缘或轮廓,栈用于存储操作历史记录,队列用于存储中间结果。实际应用包括使用数组实现灰度图像直方图和使用链表实现图像边缘检测。 C语言数据结构:数据结构在图像处理中的运用 在图像处理中,数据结构…

    2025年12月18日
    000
  • C语言多线程编程:核心知识解析与实战答疑

    c语言多线程编程通过posix线程库实现,核心包括线程创建、线程同步和线程终止。线程创建使用pthread_create()函数,线程同步机制有互斥量、条件变量和信号量,线程可通过pthread_exit()、pthread_cancel()和pthread_join()终止。实战示例中,创建并运行…

    2025年12月18日
    000
  • C语言对文件操作全面理解

    c语言提供了文件操作函数,包括打开、关闭、读、写和移动文件指针。这些函数为多种操作提供支持,例如:读取数据、写入数据以及在文件中移动。使用fopen()和fclose()可打开和关闭文件,fread()和fwrite()可用于数据读取和写入,而fseek()允许用户在文件中移动。这些函数在实际应用中…

    2025年12月18日
    000
  • C语言条件编译:一步到位,掌握疑难解答技巧

    条件编译疑难排查:确保已包含所需库(如 )。使用宏名称作为条件表达式,而不是常量或变量。正确使用 #endif 关闭所有条件块。确认条件表达式的评估结果与预期一致。检查 #define 指令是否正确定义宏,且不与其他宏冲突。 C 语言条件编译:疑难排查秘籍 条件编译是一种在编译过程中根据特定条件动态…

    2025年12月18日
    000
  • C语言文件操作:如何处理文本文件?

    在 c 语言中,文件操作允许我们存储和检索数据,包括文本文件。要处理文本文件,需先使用 fopen() 打开文件,再用 fgets() 逐行读取,用 fputs() 写入,最后用 fclose() 关闭文件。 C 语言文件操作:文本文件处理 在 C 语言编程中,我们可以对文件进行操作,包括文本文件。…

    2025年12月18日
    000
  • C语言多线程编程:新手指南与疑难解答

    c 语言多线程编程指南:创建线程:使用 pthread_create() 函数,指定线程 id、属性和线程函数。线程同步:通过互斥锁、信号量和条件变量防止数据竞争。实战案例:使用多线程计算斐波那契数,将任务分配给多个线程并同步结果。疑难解答:解决程序崩溃、线程停止响应和性能瓶颈等问题。 C 语言多线…

    2025年12月18日
    000
  • C语言文件操作:如何处理文件元数据?

    c语言提供了处理文件元数据的函数,包括提取文件大小、修改时间和访问权限。使用stat()函数可以获取文件元数据,并通过chmod()函数修改文件权限。 C 语言文件操作:处理文件元数据的实用指南 在 C 语言中处理文件元数据是管理文件信息的关键部分,包括文件大小、修改时间和访问权限。本文将深入探讨如…

    2025年12月18日
    000
  • C语言文件操作:如何处理临时文件?

    C 语言文件操作:处理临时文件 临时文件是一种用于存储临时数据的临时文件。在某些情况下,当您需要存储一些需要稍后删除的数据时,这非常有用。 在 C 语言中,您可以使用 tmpfile() 函数创建临时文件。此函数返回一个指向临时文件的 FILE 指针,该文件将在程序退出时自动删除。 例如,以下代码创…

    2025年12月18日
    000
  • C语言条件编译:从零到精通,答疑解惑

    C语言条件编译:从零到精通 什么是条件编译? 条件编译允许开发者基于指定的条件在编译时选择包含或排除特定的代码。这对于在不同平台、配置或调试版本中创建定制化的代码非常有用。 条件编译指令 立即学习“C语言免费学习笔记(深入)”; C语言中的条件编译指令有: #ifdef 检查宏是否已定义#ifnde…

    2025年12月18日
    000
  • C语言数据结构:数据结构在软件工程中的重要性

    数据结构在软件工程中的重要性在于:组织数据,提高存储效率。优化数据访问,加快检索速度。有效管理内存,降低资源占用。提供系统可扩展性,支持数据增减操作。影响算法效率,根据操作选择合适的数据结构。 C语言数据结构:在软件工程中的重要性 在软件工程中,数据结构对于组织和存储数据至关重要,以确保数据的有效和…

    2025年12月18日
    000
  • C语言多线程编程:实战经验分享与问题解答

    C语言多线程编程:实战经验分享与问题解答 引言 多线程编程是一种强大的技术,它允许程序在同一时间运行多个任务。在C语言中,使用pthread库可以轻松实现多线程。本文将分享一些在C语言多线程编程中的实战经验,并提供常见问题的解答。 实战案例:创建和管理线程 立即学习“C语言免费学习笔记(深入)”; …

    2025年12月18日
    000
  • C语言条件编译:在实践场景中解决问题指南

    条件编译是 c 语言中根据特定条件编译或排除代码的功能。通过使用 #ifdef、#ifndef、#elif、#else 和 #endif 指令,可以根据宏定义的存在或不存在、嵌套条件以及其他条件满足情况来编译不同的代码块,从而解决实际问题,例如:基于宏定义启用或禁用功能。为不同平台或环境创建不同的代…

    2025年12月18日
    000

发表回复

登录后才能评论
关注微信