gpt4 book ai didi

c++ - 什么会使 C++ 预处理器宏成为公认的开发工具?

转载 作者:搜寻专家 更新时间:2023-10-31 00:02:57 26 4
gpt4 key购买 nike

Apparently C++ 中的预处理器宏是

justifiably feared and shunned by the C++ community.

但是,有几种情况C++ macros are beneficial .

看做预处理器宏可以是extremely usefulcan reduce repetitive code以一种非常直接的方式——

-- 留给我一个问题,到底是什么让预处理器宏变得“邪恶”,或者,正如问题标题所说,哪个功能(或删除功能)会需要预处理器宏才能使它们成为一个有用的“好”开发工具(而不是每个人在使用它时都会感到羞耻的填充)。 (毕竟,Lisp 语言似乎包含宏。)

请注意:这不是关于#include#pragma#ifdef。这是关于#define MY_MACRO(...) ...

注意:我不打算让这个问题变得主观。如果您认为是,请随时投票将其移至 programmers.SE。

最佳答案

宏被广泛认为是邪恶的,因为预处理器是一种愚蠢的文本替换工具,对 C/C++ 知之甚少或一无所知。

可以在 C++ FAQ Lite 中找到宏是邪恶的四个很好的理由。 .

在可能的情况下,模板和内联函数是更好的选择。我能想到为什么 C++ 仍然需要预处理器的唯一原因是用于 #include 和注释删除。

一个广受争议的优点是用它来减少代码重复;但是正如您在 boost 预处理器库中看到的那样,必须付出很多努力才能将预处理器滥用于诸如循环之类的简单逻辑,从而导致丑陋的语法。在我看来,用真正的高级编程语言编写脚本来生成代码比使用预处理器更好。

关于c++ - 什么会使 C++ 预处理器宏成为公认的开发工具?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7090611/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com