C++中的foo是什么意思?

就像经济学家有时用“小部件”这个术语作为被测量的“某物”的最终替代品一样。程序员倾向于使用“foo”(foo的发音)这个术语,作为讨论想法或举例时真实存在的东西的通用替代。如果您为任何一组程序员定义了一个创建新的用户命令时要遵循的模板,您可以按以下格式描述命令的语法:

命令foo (arg1,arg2)

其中“foo”可能表示“您为此命令指定的名称”。换句话说,“foo”对于某些值来说是一个无意义的标识符,在使用这个模板定义一个真正的命令时会被提出来。(“arg1”和“arg2”是您将在定义命令时定义的参数或信息)。因为“foo”本身没有合理的含义,而且“foo”传统上是作为一个logo使用的,所以任何一个程序员都会清楚这一点。

Foo或任何以这种方式使用的单词的正式名称都是伪变量。埃里克·雷蒙德(Eric Raymond)可能是世界上关于foo和其他伪变量最权威的人,他还列出了qux、waldo、fred、xyzzy和其他一些偶尔使用的词。虽然foo是一个标准的伪变量,但Raymond注意到美国以外的文化都有自己的偏好。在英国经常可以看到弗雷德、巴尼和袋熊。法国据说用Toto,tata,titi,tutu。新西兰使用Blarg和wibble。

FOO的起源似乎随着时间的推移而被混淆,但Raymond观察到(我们也记得)在比尔·霍尔曼的喜剧时期1930-1950,字母“Foo”经常出现在Smokey Stover漫画中,没有解释,但作为一个插科打诨,它出现在号码牌上,画框里和三明治板的标志后面。