作业帮 > 综合 > 作业

我在学谭浩强的《C++程序设计》,P12页有一段话让我费解了.

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/07/09 09:04:07
我在学谭浩强的《C++程序设计》,P12页有一段话让我费解了.
“函数是程序中必须有的和最基本的组成部分……”
“有的程序可能不包括函数,只包括预处理和声明部分……”
到底哪个对?如果说“一个程序中必须有函数部分”这句话对不对?
一个程序如果是可执行的,那么必定存在可以被机器接受的指令,即编译器的目标代码;目前而言,几乎所有的计算机(包括PC、单片机等)除了最底层的硬件控制指令外,都把一段代码封装为函数(对于无返回值的函数,有些语言中称为过程)以供重复调用.从这个意义上而言一个可执行的计算机程序几乎必然存在函数部分.就C/C++而言,标准规定存在的形式入口函数main.编译可执行文件时,在几乎所有实现(编译程序)中,都要求用户实现main函数;即使编译器不要求用户实现main,也需要实现其它入口函数.而实际的入口函数(供系统进入程序时获得控制流的起始位置,初始化程序状态,之后转移控制流至形式入口函数执行用户代码)是隐藏的,由编译器实现为平台相关的一系列函数调用(可以说没有不使用函数的现代操作系统),通过C/C++语言本身用户无法直接控制这一过程.
当然,对于不可直接执行(而是被其它程序执行)的程序,可以没有任何可执行代码,也就没有函数,例如LS所说的纯资源dll.
PS.LZ勇气可嘉,谭某人的书也敢看,小心被误导= =...
====
[原创回答团]