既使用C又使用C++的包需要同时测试两个编译器。Autoconf生成的configure脚本 在缺省情况下检查C的特征。以下的宏决定在`configure.in’的随后部分使用那个语言的编译器。

宏: AC_LANG_C
使用CC和CPP进行编译测试并且把`.c’作为测试程序的扩展名。 如果已经运行过AC_PROG_CC,就把把shell变量cross_compiling的值设置成该宏计算的结果, 否则就设置为空。

宏: AC_LANG_CPLUSPLUS
使用CXX和CXXPP进行编译测试并且把`.C’作为测试程序的扩展名。 如果已经运行过AC_PROG_CXX,就把把shell变量cross_compiling的值设置成该宏计算的结果, 否则就设置为空。

宏: AC_LANG_FORTRAN77
使用F77进行编译测试并且把`.f’作为测试程序的扩展名。 如果已经运行过AC_PROG_F77,就把把shell变量cross_compiling的值设置成该宏计算的结果, 否则就设置为空。

宏: AC_LANG_SAVE
在堆栈中记录当前的语言(由AC_LANG_C、AC_LANG_CPLUSPLUS或者AC_LANG_FORTRAN77 所设定)。不改变当前使用的语言。在需要暂时地切换到其它特殊语言的宏之中使用本宏和AC_LANG_RESTORE。

宏: AC_LANG_RESTORE
选择储存在栈顶的,由AC_LANG_SAVE设置的语言,并且把它从栈顶删除。本宏等价于运行在最后被调用的 AC_LANG_SAVE之前最近的AC_LANG_C、AC_LANG_CPLUSPLUS或者 AC_LANG_FORTRAN77。

调用本宏的次数不要多于调用AC_LANG_SAVE的次数。

宏: AC_REQUIRE_CPP
确认已经找到了当前用于测试的预处理器。本宏根据当前选择的语言,以AC_PROG_CPP或者AC_PROG_CXXCPP 为参数调用AC_REQUIRE(参见首要的宏)。