当前位置: 首页 > news >正文

高质量C++编程

一、请填写 BOOL , float, 指针变量 与“零值”比较的 if 语句。

#include <iostream> using namespace std; int main() { //BOOL flag 与“零值”比较 //if ( flag ) //if ( !flag ) //float x 与“零值”比较 //const float EPSINON = 0.00001; //if ((x >= -EPSINON) && (x <= EPSINON) //char* p 与“零值”比较 //if (p == NULL) //if (p != NULL) return 0; }

二、以下为 Windows NT 下的 32 位 C++程序,请计算 sizeof 的值

#include <iostream> using namespace std; int main() { //char str[] = “Hello”; //char* p = str; //int n = 10; //请计算 // sizeof(str) = 6 //5个字符 + 1个结束符'\0' = 6 // sizeof(p) = 4 //指针变量占4个字节 // sizeof(n) = 4 //整数变量占4个字节 // void Func(char str[100]) //{ // 请计算 // sizeof(str) = 4 // 指针变量占4个字节 //} //void* p = malloc(100); //请计算 // sizeof(p) = 4 //指针变量占4个字节 return 0; }

三、头文件中的 ifndef/define/endif 干什么用?

// 第一步:定义唯一的宏名(通常是 头文件名大写 + 下划线,避免冲突) #ifndef STUDENT_H_ // 如果 STUDENT_H_ 未定义 #define STUDENT_H_ // 定义 STUDENT_H_ // 以下是头文件的核心内容 #include <string> // 嵌套的其他头文件 // 声明结构体 struct Student { int id; std::string name; int age; }; // 声明函数 void printStudent(const Student& stu); #endif // 结束 STUDENT_H_ 的条件编译
#include "student.h" // 第一次包含:STUDENT_H_ 未定义 → 编译头文件内容 #include "student.h" // 第二次包含:STUDENT_H_ 已定义 → 跳过内容(无错误) #include <iostream> using namespace std; // 实现头文件声明的函数 void printStudent(const Student& stu) { cout << "ID: " << stu.id << ", 姓名: " << stu.name << ", 年龄: " << stu.age << endl; } int main() { Student stu = {101, "张三", 20}; printStudent(stu); return 0; }

四、#include 和 #include “filename.h” 有什么区别?

#include <iostream> // 找系统里的iostream,写代码时必用的标准输入输出头文件 #include <stdio.h> // 找系统里的C语言标准输入输出头文件
#include "student.h" // 先在当前项目文件夹找自己写的student.h,找不到再去系统目录 #include "utils.h" // 同理,优先找本地的工具类头文件

五、在 C++ 程序中调用被 C 编译器编译后的函数,为什么要加 extern “C”?

// calc.c(C编译器编译) #include <stdio.h> int add(int a, int b) { return a + b; }
// main.cpp(C++编译器编译) #include <iostream> // 不加extern "C",C++会找_add_int_int,但C编译的是_add,链接报错 int add(int a, int b); int main() { std::cout << add(1,2) << std::endl; // 链接错误:undefined reference to `add(int, int)` return 0; }
// main.cpp(正确写法) #include <iostream> // 告诉C++:按C规则找add函数 extern "C" { int add(int a, int b); } int main() { std::cout << add(1,2) << std::endl; // 输出3,正常运行 return 0; }
http://www.jsqmd.com/news/450074/

相关文章:

  • 大家有没有发现zotero拖拽了PDF进入后,会导致电脑很卡顿,endnote不能拖拽PDF,好像不卡顿,这是不是软件的bug?有什么办法解决?
  • GPIO通用输入输出
  • 资源消耗监控:内存泄漏检测指南
  • Java String 全解析:从底层存储到高效使用
  • 教育行业在线平台如何用Vue3实现课程资料文件夹的秒传与版本回溯?
  • Winform resx文件介绍
  • AI前沿技术日更简报 - 2026-03-07
  • 新手也能上手AI论文平台,千笔 VS 文途AI,专科生写作更轻松!
  • 想找靠谱重庆小程序定制团队?就选这家!
  • 亲测排行真火燃木壁炉厂家分享
  • 微信小程序 python+AI 寻物启事 失物招领认领系统
  • 拖延症福音 9个AI论文网站测评:研究生毕业论文+开题报告写作神器推荐
  • 大数据微信小程序 python+AI 小型超市仓储进销存管理系统
  • 大模型应用开发学习路线:小白程序员必备,收藏这份高效指南!
  • 多模态多语言GLM-4V量化模型[特殊字符]
  • 企业级在线文档:ONLYOFFICE 核心优势深度解读与测评体验
  • AQS的智慧:短暂自旋 + 深度阻塞
  • 分布式鲁棒优化matlab编程:大规模清洁能源接入电网的含风-光-水-火多能源分布鲁棒动态最优...
  • 科学启蒙APP大揭秘!谁家才是孩子的最佳科学导师? - 品牌测评鉴赏家
  • ROS文件解读(package .xml--CMakeLists.txt)
  • 2026年数据恢复行业TOP5揭秘:谁才是性价比之王?
  • 计算机毕业设计之springboot基于Java的研究生导师管理信息系统的设计与实现
  • 航空航天项目如何用HTML5保障卫星数据文件夹分片上传的完整性?
  • 对比一圈后,更贴合继续教育的AI论文网站,千笔ai写作 VS 文途AI
  • 【Openclaw】初始配置
  • 位置服务平台解决的问题、适用人群,以及为何能够成立
  • 基于Cruise平台的P2构型并联混合动力汽车精准仿真模型 该模型集成了再生制动、最优制动力分...
  • JDK,Tomcat下载安装与环境变量配置以及启动IDEA
  • 计算机毕业设计springboot农产品批发市场管理系统 基于SpringBoot的农产品集散中心信息化管理平台 基于SpringBoot的生鲜农贸流通智慧监管系统
  • 项目3 | muduo网络库面试