十年老IT知识分享 – 基础知识 | 每日一练(177)

读者:assert() 是什么?怎样用它?

小林:这是个定义在 <assert.h> 中的宏, 用来测试断言。一个断言本质上是写下程序员的假设, 如果假设被违反, 那表明有个严重的程序错误。例如, 一个假设只接受非空指针的函数, 可以写:assert(p != NULL);一个失败的断言会中断程序。断言不应该用来捕捉意料中的错误, 例如malloc() 或 fopen() 的失败。

读者:怎样从 C 中调用 FORTRAN (C++, BASIC, Pascal, Ada,LISP) 的函数?反之亦然?

小林:这完全依赖于机器以及使用的各个编译器的特别调用顺序, 有可能完全做不到。仔细阅读编译器的文档, 有些时候有个 “混合语言编程指南”, 尽管传递参数以及保证正确的运行启动的技巧通常很晦涩难懂。C++ 中, 外部函数说明的 “C” 修改量表明函数应该按 C 的调用约定使用。

正文完