为什么很多程序示例常用foo和bar来做函数或者变量名称?

是不是看到过很多的简单的Demo代码,都用foo和bar来做函数或者变量名称?

例如:

// C++ code

#include <iostream>
using namespace std;

int main()
{
   char foo[] = "Hello,";
   char bar[] = "World!";
   cout << foo << " " << bar << endl;

   return 0;
}

虽然知道这肯定是某种约定俗成的写法,也隐约觉得是从国外传过来的,但是终究好奇这种写法是怎么来的,为什么不用A/B/C,One/Two/Three呢。去互联网上搜索了一番,像我一样对这个小事情怀着这样好奇心的人是有的,他们早就提出了自己的疑问。这个习惯的产生和发展估计比较复杂,所以如果要找一个标准答案,恐怕不是那么容易。

foobar,计算机技术中的一种常见的替名词
在计算机程序设计与计算机技术的相关文档中,术语foobar是一个常见的无名氏化名,常被作为“伪变量”使用。

foo,bar的起源真是没法说了,众说纷纭啊。总起来说,正是foo,bar和foobar及FUBAR的广泛使用,使得能在不同的领域看到这几个词。

维基百科云:

最早出现在正式文档中式1930年。是一个国际标准:http://tools.ietf.org/html/rfc3092

这个文档说,foor,bar分别是Metasyntactic variable的第一个和第二个变量。另外依次还有

(bar, baz, qux, quux, corge, grault, garply, waldo, fred, plugh, xyzzy, thud)

foo,bar现在也被经常用作没有意义的占位符,也就是Metasyntactic variable

为我们其实可以理解为中文中的甲乙丙丁。

 

维基百科中文参考:http://zh.wikipedia.org/wiki/Foobar

英文略更详细的参考:http://en.wikipedia.org/wiki/Foobar

http://en.wikipedia.org/wiki/Metasyntactic_variable

http://www.catb.org/~esr/jargon/html/F/foobar.html

http://blog.csdn.net/sunyonggao/article/details/1633123

http://programmers.stackexchange.com/questions/69788/what-is-the-history-of-the-use-of-foo-and-bar-in-source-code-examples

版权声明:除标明转载的文章外皆为原创文章
转载请注明: 转载自Liudroid的博客,作者:Liudroid
本文链接地址: 为什么很多程序示例常用foo和bar来做函数或者变量名称?

2 Comments

  1. 龙猫阅读 said:

    一直也很好奇,长见识了!

    2013 年 06 月 13 日
    Reply

发表评论

电子邮件地址不会被公开。 必填项已用*标注

This site uses Akismet to reduce spam. Learn how your comment data is processed.