C++面试宝典:预处理指令与宏实战

需积分: 0 2 下载量 99 浏览量 更新于2024-08-02 收藏 254KB DOC 举报
本文档是一份实用的C++面试题集,涵盖了C++编程的基础和进阶概念。主要关注于预处理器指令、宏的使用以及嵌入式系统中的编程技巧。 1. 预处理器指令的理解与应用 - 宏定义如`#define SECONDS_PER_YEAR (60*60*24*365)UL`展示了预处理器的使用,它用于声明常量,避免直接计算可能导致的溢出问题。宏常数的表达式在编译时会被求值,这使得代码更清晰,且不会占用运行时内存。 2. 宏MIN的实现及其作用 - `#define MIN(A, B) ((A) <= (B) ? (A) : (B))`展示了宏在嵌入式编程中的重要性,用于简化代码并可能提高执行效率。三元条件操作符在这里被巧妙运用,但需要注意参数括号的使用以确保正确传参。 3. 预处理器指令的其他功能 - 包括`#error`指令,用于在编译过程中检测并停止错误,提供错误信息,这对于保证代码质量很有帮助。其他指令如`#include`用于引入头文件,`#ifdef`和`#ifndef`用于条件编译,以适应不同环境。 4. 嵌入式系统的无限循环实现 - 在嵌入式系统中,常用无限循环来进行持续运行,提供了三种常见的实现方式:`while(1) {}`,`for(;;)`,以及使用`goto`语句实现的循环结构。 5. 变量定义的深入理解 - `inta;`定义了一个整型变量,`int*a;`是整型指针,`inta;`则定义了一个指向指针的指针,反映了C++中指针层次的概念。 这份文档有助于面试者复习C++语言的基础知识,包括预处理器的用法、宏的副作用管理、以及针对特定环境(如嵌入式系统)的编程策略。理解和掌握这些内容对求职者在实际面试中展示自己的技能至关重要。

import fitz # PyMuPDF库 import os # 读取PDF文件的内容 def read_pdf(file_path): doc = fitz.open(file_path) content = "" for page in doc: content += page.getText("text") doc.close() return content # 去除字符串中的空格和空行 def remove_spaces(text): return "\n".join([line.strip() for line in text.split("\n") if line.strip()]) # 将字符串按中文句号分割成多个语句 def split_sentences(text): sentences = [] for sentence in text.split("。"): sentence = sentence.strip() if sentence: sentences.append(sentence + "。") return sentences # 读取指定目录下所有PDF文件的内容并合并成一个字符串 def read_all_pdfs(dir_path): all_content = "" for file_name in os.listdir(dir_path): if file_name.endswith(".pdf"): file_path = os.path.join(dir_path, file_name) content = read_pdf(file_path) content = remove_spaces(content) all_content += content return all_content # 将字符串按中文句号分割成多个语句并打印出来 def print_sentences(text): sentences = split_sentences(text) for sentence in sentences: print(sentence) # 测试 dir_path = r"D:\点宽学院" all_content = read_all_pdfs(dir_path) print_sentences(all_content)这是我的代码显示Traceback (most recent call last): File "D:\python+pycharm\ceshi.py", line 44, in <module> all_content = read_all_pdfs(dir_path) File "D:\python+pycharm\ceshi.py", line 31, in read_all_pdfs content = read_pdf(file_path) File "D:\python+pycharm\ceshi.py", line 8, in read_pdf content += page.getText("text") AttributeError: 'Page' object has no attribute 'getText',如何修改呢

2023-05-12 上传