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

怎样把建好的网站上传到互联网seo优化网站推广全域营销获客公司

怎样把建好的网站上传到互联网,seo优化网站推广全域营销获客公司,网站备案是每年一次吗,武汉手机网站linux——网络(服务器的永久不挂——守护进程)-CSDN博客 目录 一、序列化与反序列化 1. 推荐 JSON 库 2. 使用 nlohmann/json 示例 安装方法 基础用法 输出结果 3. 常见操作 4. 其他库对比 5. 选择建议 二、ifdef宏的用法 基本语法 核心用途…

linux——网络(服务器的永久不挂——守护进程)-CSDN博客


目录

一、序列化与反序列化

1. 推荐 JSON 库

2. 使用 nlohmann/json 示例

安装方法

基础用法

输出结果

3. 常见操作

4. 其他库对比

5. 选择建议

二、ifdef宏的用法

基本语法

核心用途

进阶用法

注意事项

示例:跨平台日志


一、序列化与反序列化

上篇博客的最后我们介绍序列化与反序列化,这次我们介绍常用的序列化库。

1. 推荐 JSON 库

  • nlohmann/json
    现代、易用的头文件库,语法简洁,支持 C++11 及以上。

    #include <nlohmann/json.hpp>
    using json = nlohmann::json; // 别名简化

  • RapidJSON
    高性能库,适合对速度要求高的场景,但 API 较复杂。

  • JsonCpp
    老牌库,功能稳定,但需要编译。


2. 使用 nlohmann/json 示例

安装方法
  • 直接包含头文件:下载 json.hpp 到项目目录。

  • 包管理器安装(如 vcpkg):vcpkg install nlohmann-json

  • linux CentOS 7安装JSON

  • yum install epel-release

基础用法
#include <iostream>
#include <nlohmann/json.hpp>
using json = nlohmann::json;int main() {// 解析 JSON 字符串json j = json::parse(R"({"name": "Alice", "age": 25, "scores": [90, 85]})");std::string name = j["name"]; // "Alice"int age = j["age"];           // 25// 修改数据j["age"] = 26;j["scores"].push_back(95); // 添加元素// 生成 JSON 字符串std::string json_str = j.dump(4); // 缩进4空格格式化std::cout << json_str << std::endl;return 0;
}
输出结果
{"age": 26,"name": "Alice","scores": [90, 85, 95]
}

3. 常见操作

  • 嵌套对象

    json j;
    j["user"]["id"] = 123;
    j["user"]["tags"] = {"admin", "developer"};

  • 异常处理

    try {json j = json::parse(invalid_json_str);
    } catch (const json::parse_error& e) {std::cerr << "解析错误: " << e.what() << std::endl;
    }

  • 文件读写

    // 从文件读取
    std::ifstream file("data.json");
    json j;
    file >> j;// 写入文件
    std::ofstream out("output.json");
    out << j.dump(4);


4. 其他库对比

优点缺点
nlohmann/json语法简洁,易用性强性能稍低
RapidJSON性能极高,内存占用小API 复杂,需手动管理
JsonCpp稳定,兼容性好需要编译

5. 选择建议

  • 快速开发:优先选择 nlohmann/json

  • 高性能场景:使用 RapidJSON

  • 兼容旧项目:考虑 JsonCpp


二、ifdef宏的用法

基本语法

#ifdef 宏名称// 如果宏已定义,编译此代码
#else// 如果宏未定义,编译此代码(可选)
#endif

核心用途

  1. 调试代码开关

    #define DEBUG  // 注释此行以关闭调试信息#ifdef DEBUGstd::cout << "Debug信息: x = " << x << std::endl;
    #endif

  2. 头文件保护(防止重复包含)

    #ifndef MY_HEADER_H
    #define MY_HEADER_H
    // 头文件内容
    #endif

  3. 跨平台适配

#ifdef _WIN32// Windows专用代码
#elif __linux__// Linux专用代码
#endif
  1. 功能模块开关

    // 编译时添加 -DUSE_FEATURE_A 启用功能
    #ifdef USE_FEATURE_A// 功能A的代码
    #endif


进阶用法

  • #if defined 组合条件
    支持逻辑运算符(&&||!):

    #if defined(DEBUG) && (VERSION >= 3)// 当DEBUG已定义且版本≥3时编译
    #endif
  • #ifndef 反向检查
    等价于 #if !defined

    #ifndef RELEASE// 若未定义RELEASE则编译
    #endif


注意事项

  1. 宏定义位置
    宏通常在文件顶部定义,或通过编译器选项定义(如 g++ -DDEBUG)。

  2. 作用域
    宏定义仅在定义之后有效,且遵循文件作用域。

  3. 与 #pragma once 的区别
    #pragma once 是编译器特性(非标准),用于替代头文件保护,但 #ifndef 是标准且跨平台兼容的。

  4. 预处理指令格式
    指令需独占一行,以 # 开头,不可缩进或混入其他代码。


示例:跨平台日志

#include <iostream>// 编译时定义 -DPRINT_DEBUG 启用调试输出
#ifdef PRINT_DEBUG#define LOG(msg) std::cout << "[LOG] " << msg << std::endl
#else#define LOG(msg)
#endifint main() {LOG("程序启动");  // 若未定义PRINT_DEBUG,此行不编译return 0;
}

通过灵活使用 #ifdef,可以提升代码的可维护性和跨平台兼容性。

三、网络计算机全部全部代码

网络计算机完结 · 8156655 · MFF的库/linux - Gitee.com

http://www.dinnco.com/news/3764.html

相关文章:

  • 自己做的网站如何兼容手机百度搜索
  • 湛江怎么做网站关键词优化海南百度推广公司
  • 选择常州网站建设公司上饶seo博客
  • 六安网站建设收录排名好的发帖网站
  • html网页制作实例代码大地seo视频
  • wordpress星评分常州seo外包公司
  • 做生鲜管理系统的网站在百度上怎么注册网站
  • 佛山网站建设流程地产渠道12种拓客方式
  • 国税网站页面申报撤销怎么做百度推广渠道
  • 淘客怎么做网站如何查询百度搜索关键词排名
  • 深圳微商城网站设计制作蜜雪冰城推广软文
  • 优购物官方网站今日直播喜来健重庆seo的薪酬水平
  • 扬州市工程信息网seo自学教程seo免费教程
  • 园区官方网站建设小程序开发软件
  • 珠海网站建设策划网站优化员seo招聘
  • 网站建设专家论证会重庆网站制作系统
  • 信用卡申请网站建设实事新闻热点
  • 服装网站建设比较好厦门seo全网营销
  • 品牌建设规划方案青岛谷歌seo
  • 旅游网站建设的课题研究的主要内容项目网
  • django 做网站 原理网络营销推广培训机构
  • 建设外贸网站公司简介aso优化服务
  • 原子艺术做的网站怎么样子上海网站seo外包
  • 网站开发应该怎么做百度电话号码
  • 中国黄页网廊坊首页霸屏优化
  • 汇泽网站建设交友网站有哪些
  • 网页设计模板html代码五四主题西安关键词优化软件
  • 建设监督网站首页网站模板设计
  • 网页设计搭建网站网络推广员的日常工作
  • 山东定制版网站建设公司网站宣传费用