ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

听故事学语言 · 第十三章 函数声明与作用域

听故事学语言 · 第十三章 函数声明与作用域

听故事学语言 · 第十三章 函数声明与作用域

一、公案开庭

上一章末尾留了一桩案子。函数为什么要写在 main 的上面,编译器从上往下读你的代码,读到调用处的时候,它必须已经认识这位新朋友。当时说这里面还有一层公案,本章开审。现在开庭。

先让案子自己暴露。写两个函数,一个判奇数,一个判偶数,它们互相调用,isOdd 说自己是奇数除非对方说自己是偶数,isEven 说自己是偶数除非对方说自己是奇数。这对定义在数学上无懈可击,在 C 语言里却撞了墙。

【例1】死锁解围

#include<stdio.h>/* 死锁版:isOdd 喊 isEven,isEven 又回头喊 isOdd */intisOdd(intn
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进