Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >拆分.cpp文件而不更改代码

拆分.cpp文件而不更改代码
EN

Stack Overflow用户
提问于 2012-06-03 21:33:46
回答 3查看 4K关注 0票数 4

我有一个变得相当大的.cpp,为了便于管理,我想将它拆分为几个文件。但是,有许多全局变量,我希望避免管理跨不同文件的一堆外部声明的维护工作。有没有办法让多个.cpp文件作为一个文件?从本质上讲,我希望有一种方法来划分代码,而不是让编译器识别这种划分。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-06-03 21:37:23

当然,您总是可以将各种CPP文件#include到一个主文件中,这是编译器可以看到的文件。然而,这是一个非常糟糕的想法,你最终会遇到比正确重构文件更令人头疼的问题。

票数 5
EN

Stack Overflow用户

发布于 2012-06-03 21:48:50

有没有办法让多个.cpp文件作为一个文件?

是。这就是#include的定义。当您对一个文件执行#include操作时,需要对包含的文件进行文本替换,而不是#include指令。因此,多个包含的文件一起作用以形成一个翻译单元。

在您的情况下,将文件切成几个比特。准确地执行此操作--不要添加或删减任何文本行。不要添加标题保护或其他任何内容。你几乎可以在任何方便的地方破坏你的文件。限制是:换行符不能出现在注释中,也不能出现在字符串中,而且必须出现在逻辑行的末尾。

根据一些约定命名新创建的局部文件。它们不是完全形式的转换单元,所以不要将它们命名为*.cpp。它们不是正确的头文件,所以不要将它们命名为*.h。相反,它们是部分完整的翻译单元。也许您可以将它们命名为*.pcpp

至于基名,请选择原始文件名,后缀按顺序编号:MyProg01.pcppMyProg02.pcpp等。

最后,用一系列#include语句替换原始文件:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include "MyProg01.pcpp"
#include "MyProg02.pcpp"
#include "MyProg03.pcpp"
票数 6
EN

Stack Overflow用户

发布于 2012-06-03 21:49:16

虽然您可以在许多cpp文件中声明相同的全局变量集,但在编译器编译每个文件时,您将获得每个全局变量的单独实例,然后这些文件在组合时将无法链接。

唯一的答案是把你所有的全局变量放在它们自己的文件中,然后将它们剪切并粘贴到一个包含外部声明的头文件中(这很容易自动化,但我发现使用箭头键在它们前面粘贴' extern‘是快速而简单的)。

你可以重构所有的东西,但通常不值得花这么大的力气(除非你因为其他原因而需要改变一些东西)。

您可以尝试拆分文件,然后使用编译器告诉您每个新文件需要哪些全局变量,然后将这些全局变量直接重新引入到每个文件中,分别保留真正的全局变量。

如果您不想这样做,只需#include cpp文件即可。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10874112

复制
相关文章
NodeJS操作Redis
新建test.js,然后在目录下执行npm install redis var redis = require('redis'); var client = redis.createClient(6379,'127.0.0.1'); client.on('connect', function() { console.log('connected'); }); //string client.set('framework', 'AngularJS'); client.get('framework',f
苦咖啡
2018/04/28
3.6K0
nodejs集成redis
Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
OECOM
2020/07/01
9330
nodejs操作Redis事务
有时候为了同时处理多个结构,我们需要向redis发送多个命令,或者服务器采用负载均衡的模式,多个负载同时访问redis,造成并发。为了让redis执行期间不受其他命令的影响,redis提供了事务的命令,事务在关系型数据库如mysql中很常见,也是为了应对并发等来产生的。
OECOM
2020/07/01
1.4K0
Redis实现列表数据查询设计
本文总结个人在使用Redis存储列表数据业务场景下的一些思路。平常在使用数据查询时,我们一般会将查询出来的数据使用json_encode()序列化一下,然后根据数据ID存储到Redis中。这样针对列表类的数据,或许就不是很好的实现了(因为涉及到分页计算)。本文使用String和zset类型实现这样的功能。
兔云小新LM
2021/03/16
1.3K0
nodejs使用redis发布订阅
一般来说,发布与订阅(又称为pub/sub)的特点是订阅者(listener)负责订阅频道(channel),发送者(publisher)负责向频道发送二进制字符串消息(binary string message)。每当有消息被发送至给定频道时,频道的所有订阅者都会接收到消息,我们也可以吧频道看作是电台,其中订阅者可以同时收听多个电台,而发送者则可以在任何电台发送消息。
OECOM
2020/07/01
2.6K0
java redis模糊查询_Redis模糊查询「建议收藏」
最近使用Redis优化项目功能,其中有一部分为模糊查询,找了很多帖子,也没有找到很好的解决方案和思路,最终皇天不负有心人啊,终于让我找到了!!!
全栈程序员站长
2022/09/02
7.2K0
Redis | 慢查询
MySQL 中存在慢查询,Redis 中也存在慢查询,Redis 的慢查询是命令执行超过设定阈值的查询就是慢查询。我们来整理一下。
码农UP2U
2021/01/14
7940
Redis | 慢查询
redis模糊查询
把所有的数据按照字符串形式的key-value保存到redis中,然后使用keys *关键字*方式模糊匹配。在设计key时,需要把模糊查询的value叶设计成key的一部分。但是网上有说:redis生产环境中慎用keys模糊匹配方法
BUG弄潮儿
2022/06/30
4.2K0
nodejs的redis工具类 原
做一个工具时,起初用到redis,后来发现有更好的解决方案,遂放弃redis,但辛辛苦苦写的code不舍得删,这里记录下
尚浩宇
2018/08/17
8750
redis scan命令_redis 查询命令
我们可能会遇到需要运行的某些命令在godis中不存在的情况,这个时候我们可以使用其原生的方式运行命令,为了方便使用,封装了一个方法,用于简化这个过程。需要注意的是,执行命令的返回结果返回的是interface{},需要对其进行解析成可读的实体结构。
全栈程序员站长
2022/11/08
1.9K0
redis 学习(10)-- redis 慢查询
MySQL会记录下查询超过指定时间的语句,我们将超过指定时间的SQL语句查询称为慢查询,都记在慢查询日志里。
希希里之海
2019/06/02
1K0
redis web查询工具
1、默认不带登录鉴权功能(改进:在前面接一道nginx或者其它支持统一登录的工具)
保持热爱奔赴山海
2020/07/24
1.2K0
Redis慢查询日志
slow log是Redis用来记录查询执行时间超过给定时长的命令请求的日志系统。许多数据库(如:MySQL)提供慢查询日志帮助开发与运维人员定位系统存在的慢操作。所谓慢查询日志就是系统在命令执行前后计算每条命令的执行时间,当超过预设阈值,就将这条命令的相关信息(例如:发生时间,耗时,命令的详细信息)记录到慢查询日志中,Redis也提供了类似的功能;另外,slow log保存在内存里面,读写速度非常快,因此你可以放心地使用它,不必担心因为开启slow log而损害Redis的速度。
SEian.G
2021/03/03
4920
Redis(7)——慢查询
慢查询日志就是系统在命令执行前后计算每条命令的执行时间,但超过预设阈值时,会将这条命令的相关信息(执行时间 执行耗时 命令的详细信息)记录下来。
羊羽shine
2019/05/29
6390
Redis慢查询日志
通过 slowlog get 查看慢查询日志是什么样子?【从其他redis服务器看的】
每天晒白牙
2020/08/20
3.2K1
Redis 数据库操作、配置以及慢查询
Redis 提供了几个面向 Redis 数据库的操作,例如之前已经介绍过或者使用过的 DBSIZE 、SELECT 、FLUSHDB/FLUSHALL 本节将通过具体的使用场景介绍这些命令。
三产
2021/01/12
7660
Redis 慢查询分析
慢查询,顾名思义就是比较慢的查询,但是究竟是哪里慢呢?首先,我们了解一下Redis命令执行的整个过程:
zeekling
2022/08/26
3100
Redis 慢查询分析
Nodejs 12306余票查询小工具
一个 Nodejs 写的查询12306余票的小工具,查询到指定车次的车票后会反馈到邮箱
小鑫
2022/04/24
3870
点击加载更多

相似问题

希伯来语多语言[数字]

23

从右到左语言的网站(阿拉伯语、希伯来语)

20

sql中的希伯来语和其他语言

23

从右到左语言的页面顺序(阿拉伯语、希伯来语)

10

语言未更新到希伯来语android

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文