17、Windows 8 通知与后台任务开发指南
2025/12/23 10:10:13
// 无返回值函数 (void函数)voidcheers(intn){for(inti=0;i<n;i++)std::cout<<"Cheers! ";std::cout<<std::endl;}// 有返回值函数doublecube(doublex){returnx*x*x;// 返回计算结果}// 告诉编译器函数的"样子"voidcheers(intn);// 原型中变量名可选doublecube(doublex);// 原型必须以分号结束intmain(){cheers(5);// 调用void函数doublevolume=cube(5.0);// 调用有返回值函数return0;}// 原型保护示例cheers(cube(2));// 原型确保cube(2)将int转换为double// 然后cube返回值又被转换为int给cheers#include<iostream>// 函数原型voiddisplayMessage();doublecalculateAverage(doublea,doubleb,doublec);intmain(){usingnamespacestd;displayMessage();// 调用函数doublex,y,z;cout<<"请输入三个数: ";cin>>x>>y>>z;// 调用有返回值函数doubleavg=calculateAverage(x,y,z);cout<<"平均值是: "<<avg<<endl;return0;}// 函数定义voiddisplayMessage(){usingnamespacestd;cout<<"=== 计算平均数程序 ===\n";}doublecalculateAverage(doublea,doubleb,doublec){return(a+b+c)/3.0;}// 返回表达式的计算结果intbigger(inta,intb){return(a>b)?a:b;// 条件运算符作为返回值}// 多条返回语句(谨慎使用)intgetValue(boolflag){if(flag)return100;// 函数在此结束elsereturn0;// 函数在此结束}// ✅ 好的原型实践doublecalculate(double);// 简洁,仅类型voidprocess(intcount);// 带描述性变量名// ❌ 避免的实践// double calculate(double x) { ... } // 这是定义,不是原型!A:仅在函数定义出现在调用之前时可以,但为了清晰和避免错误,建议始终使用原型。
A:不重要!原型中的变量名只是占位符,编译器会忽略它们。重要的是类型信息。
A:C++有严格类型检查。原型发现类型不匹配时,会自动进行安全转换。如果无法安全转换,则报错。
// 典型程序结构#include<iostream>// 1. 所有函数原型voidfunctionA();intfunctionB(double);// 2. main函数intmain(){...}// 3. 函数定义voidfunctionA(){...}intfunctionB(doublex){...}// functions.h#ifndefFUNCTIONS_H#defineFUNCTIONS_HvoiddisplayHelp();doublecalculate(doublex,doubley);#endif// main.cpp#include"functions.h"// 直接使用函数,原型已在头文件中掌握函数的基础知识是成为C++程序员的重要一步。正确的函数使用能让代码更清晰、更安全、更易维护!🚀
编程名言:函数是程序的积木,原型是使用说明书。没有说明书的积木,拼出来的可能是灾难!