time: 2021-05-27 11:28:36
author: heyunjiang
c++ 学习的意义
最近在做 electron 自定义构建,需要了解到 electron 源码、chrome patch 及 chromium 源码,目前对于 c++ 不了解,不知道入口函数在哪
在 e build
执行构建时,也有可能遇到问题,需要知道大致问题所在
目前已有问题
同 python 学习一样
这里做个快速入门,方便简单看懂相关代码
参考 electron 源码 shell/app/electron_main.cc
来学习
// electron_main.h
#ifndef SHELL_APP_ELECTRON_MAIN_H_
#define SHELL_APP_ELECTRON_MAIN_H_
#include "content/public/app/content_main.h"
#endif // SHELL_APP_ELECTRON_MAIN_H_
// electron_main.cc
#include "shell/app/electron_main.h"
#include <algorithm>
#include <cstdlib>
namespace {
char* indicator = getenv(name);
return indicator && indicator[0] != '\0';
}
int main(int argc, char* argv[]) {
#if defined(HELPER_EXECUTABLE) && !defined(MAS_BUILD)
uint32_t exec_path_size = 0;
#endif // defined(HELPER_EXECUTABLE) && !defined(MAS_BUILD)
FixStdioStreams();
return ElectronMain(argc, argv);
}
问题:头文件有啥用?头文件引入的模块,在 cc 中可以直接使用吗?
答:可以,比如 c 中 stdio.h
基础语法
#include <cstdio.h>
, #include "myHeader.h"
, 模块包括系统标准库(由编译器提供),自定义模块.c
, c++ .cc, .cpp, .c, .cp
namespace std {}
, 使用 using namespace std
或 std::print
cout << "hello world"
#include, #define, #if, #else, #line
等,是编译过程的一个单独步骤,不是 c++ 语句代码#define macro-name replacement-text
定义宏,后续所有变量都会被替换