C 语言教程 在线

1554C 递归

递归是一个简洁的概念,同时也是一种很有用的手段。但是,使用递归是要付出代价的。与直接的语句(如while循环)相比,递归函数会耗费更多的运行时间,并且要占用大量的栈空间。递归函数每次调用自身时,都需要把它的状态存到栈中,以便在它调用完自身后,程序可以返回到它原来的状态。未经精心设计的递归函数总是会带来麻烦。

1553C 强制类型转换

如果一个运算符两边的运算数类型不同,先要将其转换为相同的类型,即较低类型转换为较高类型,然后再参加运算,转换规则如下图所示。

1552C 头文件

C 语言中 include <> 与include "" 的区别?

#include < > 引用的是编译器的类库路径里面的头文件。

#include " " 引用的是你程序目录的相对路径中的头文件,如果在程序目录没有找到引用的头文件则到编译器的类库路径的目录下找该头文件。

1551C 头文件

在有多个 .h 文件和多个 .c 文件的时候,往往我们会用一个 global.h 的头文件来包括所有的 .h 文件,然后在除 global.h 文件外的头文件中 包含 global.h 就可以实现所有头文件的包含,同时不会乱。方便在各个文件里面调用其他文件的函数或者变量。

#ifndef _GLOBAL_H
#define _GLOBAL_H
#include <fstream>
#include <iostream>
#include <math.h>
#include <Config.h>

1550C 预处理器

对于字符常量化宏一例中,可以将宏做成函数形式,如下更改,给 printf 句加上 {};,则主函数中的 message_for(Carole, Debra) 可以省略 ;
#include <stdio.h>

#define  message_for(a, b)  \
    {printf(#a " and " #b ": We love you!\n");}

int main(void)
{
   message_for(Carole, Debra)
   return 0;
}