【发布时间】:2022-01-04 12:52:51
【问题描述】:
以下是来自 GNU Make 软件的代码段。这些行取自 make.h。你能告诉我#pragma alloca 是什么意思吗。#if define (_AIX) 表示代码#pragma alloca应该只运行 AIX 的定义。 make的版本是3.75
/* AIX requires this to be the first thing in the file. */
#if defined (_AIX) && !defined (__GNUC__)
#pragma alloca
#endif
请给我一个详细的解释。我正在努力阅读和学习 GNU make 。在哪里可以 我能找到一篇关于 GNU make 内部工作原理的详细文章吗?
#额外
如果您能告诉我如何阅读(任何开源软件的)代码并学习,那将会很有帮助。从代码中学习似乎真的是一项艰巨的任务。非常感谢任何帮助。
【问题讨论】:
-
alloca()是 not a part of the C standard,但经常出现并且需要使用正确的#define或#pragma启用。有点像malloc(),但是在栈上分配空间,速度更快,以后不需要显式释放;内存在返回时被释放。关于您的其他观察,学习编码很难,这是准确的,只需要时间、耐心、练习和在需要时提出问题。您似乎走在正确的道路上。