BackgroundC++是谷歌开源项目的主要使用语言,虽然Google Code 黄了。C++是很强大的语言,以致于增加了其复杂性。为了让代码被其他程序员看懂,减少出bug的可能,所以有了这个谷歌C++风格指导。Header Files每个.cc文件都应该与一个.h文件关联,除非是单元测试或者只包含一个main();The #define Guard每个头文件都应该避免被重复包含。宏定义可以用PROJECT_PATH_FILE_H_ 的格式。
例如:
#ifndef FOO_BAR_BAZ_H_
#define FOO_B...
服务端的某个项目,要考虑到性能问题,之前使用基于公司框架的php,性能有瓶颈,经过调研,决定使用go。因为之前有一个关键模块已经使用c++实现,所以计划使用go做HTTP容器,让go和c++模块结合起来。
在网上调研结合方案,go自带的cgo只支持c语言,swig工具可以支持多种语言结合c++,所以决定使用swig,这里简要叙述下swig的使用和一些发现的要点。
1. 我们解压了swig后,首先要根目录运行configure和make,这样会生成各个子目录...
go lang与c/c++的链接示例:foo.hpp//foo.hpp
#ifndef _FOO_HPP_
#define _FOO_HPP_template<typename T>
T add(const T& lhs,const T& rhs)
{return lhs+rhs;
}void display();#endif //_FOO_HPP_
foo.cpp//foo.cpp
#include "foo.hpp"
#include <iostream>void display()
{std::cout<<"this message is from foo.cpp -display"<<std::endl;
}
foo_wrap.h//foo_wrap.h
#ifndef _FOO_WRAP_H_
#define _FOO_WRAP_H_#ifdef __cpluspl...
//原文:http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml
谢谢关注原文:http://www.cnblogs.com/jesse-deng/p/3551192.html
C语言: .c文件 编译器gcc//my_code下hello.c文件$sudo apt installgcc
$gcc hello.c -o hello
$./hello C++: .cpp文件 编译器g++//my_code下hello.cpp文件$sudo apt install g++
$gcc hello.cpp -o hellocpp
$./hellocpp python: .py文件 不用编译//my_code下hello.py文件$python3 hello.py go: .go文件 编译器go-build//go_code/src/test/下main.go文件-go_code 工程文件夹-src 项目源代码文件夹-test 测试代码文件夹-main.go 测...
最近一直都在x86设备上进行游戏开发,就c++层和Android java层倒没有什么要特别注意的(除了需要注意一下修改Application.mk指定平台外),在c++崩溃的时候,很多时候看不到堆栈,只能看到一个信号,所以由于工作需要,使用google breakpad来进行异常捕捉。谷歌被墙很麻烦,索性就把breakpad打包放这里供需要的童鞋下载,google breakpad下载。1.下载google breakpad下载地址是 http://code.google.com/p/google-breakpad/source/...
c++ goto 语句的使用1.定义一个类似标签的东西lable2.使用goto关键字,跳转到lable, goto lable 1 #include <iostream>2 #include <string>3 #include <stdlib.h>4 #include <stdio.h>5 6 7 #include "header3.h" 8 9usingnamespace std;
10void swap(int&, int&);
11//void swap(int, int);1213int main(){
14bool flag = true;
1516lable:
17 cout<<"hello world!"<<endl;
1819if(flag){
20 flag = !flag;
21goto la...
一、测试夹具(Test Fixtures):对多个测试使用相同的数据配置如果你发现自己写了两个或更多的测试来操作类似的数据,你可以使用测试夹具。它允许您为几个不同的测试重复使用相同的对象配置。要创建夹具,只需: 1.从:: testing :: Test派生一个类。 使用protected:或public:开始它的主体,因为我们想从子类 访问fixture成员。 2.在类中,声明你打算使用的任何对象。 3.如果需要,可以编写默认构造函数或SetUp()函数来为...
时间:2014.03.02地点:基地----------------------------------------------------------------------------------------一、简述 Google 的C++规范号称世界上最优秀的编码规范,于是拿来研究下,已改善自己以后的工作,今天只先学习下它的命名规范。----------------------------------------------------------------------------------------二、命名规则1.文件命名规则 文件名全部小写,可以含下划线或连字符,按项目约定命...
v0.2 - Last updated November 8, 2013源自 Google‘s C++ coding style rev. 3.274目录 由 DocToc生成 头文件 #define用法 前向声明 内联函数 -inl.h文件 函数参数顺序 include的命名和顺序 作用域 命名空间 未命名空间 命名空间 嵌套类 非成员函数、静态成员函数、全局函数 局部变量 静态变量和全局变量 类 ...
一、概述 Googletest是一个用来写C++单元测试的框架,它是跨平台的,可应用在windows、linux、Mac等OS平台上; 代码框架: 1 [root@docker googletest-release-1.6.0]# ll 2build3 build-aux4CHANGES5cmake6CMakeLists.txt7codegear8configure.ac9CONTRIBUTORS
10COPYING
11include
12m4
13make
14Makefile.am
15msvc
16README
17samples
18scripts
19src
20test
21 xcode原文:http://www.cnblogs.com/chris-cp/p/6129661.h...
一:什么是rpc rpc通俗来理解就是远程调用函数,相对于本地调用来说,只需要在主调函数中调用被掉函数即可,代码如下: 1void fun(int i)2{3 cout << "function call" << endl;4 cout << "args: " << i << endl;5return;6}7 8int main()9{
10 fun(5);
11return0;
12 }在上面的代码中,main( )函数在第10行调用了本地函数fun( ),本地调用就是这么简单。如果要远程调用一个函数,那么就需要进行网络通信,网络通信就设计...
摘自:http://www.infoq.com/cn/news/2017/06/freewheel-experience-on-goGo语言是FreeWheel公司目前主要力推的一个方向,在其看来,面向服务的架构的大环境中,Go非常适合做一些功能相对独立、功能比较明确的微服务的语言。在结合已有的各种编程语言,计算框架(如Hadoop、Java、Ruby、C++)的基础上,FreeWheel把Go语言定位成用来实现轻量级服务或API的缺省编程语言,将之与用来完成更小粒度工作的Python结合在一起,就构成了Fre...
实现这一功能很简单,主要需要调用一个系统APIExitWindowsEx功能就是,注销当前用户,关闭系统,或者重新启动系统。它会发送一个WM_QUERYENDSESSION消息给所有的应用程序,让他们决定是不是可以被关闭。函数原型: <span style="font-size:18px;">BOOL WINAPI ExitWindowsEx( __in UINT uFlags, __in DWORD dwReason );</span>第一个参数是关闭类型,第二个是关闭的原因 第一个参数可以是: EWX_LOGOFF0EWX_POWEROFF0x000000...
C/C++调用Golang 二《C/C++调用Golang 一》简单介绍了C/C++调用Golang的方法步骤,只涉及一个简单的函数调用。本文总结具体项目中的使用场景,将介绍三种较复杂的调用方式:一,C++向golang传入复杂结构体;二,C++向golang传入回调函数,在golang中调用C++函数;三,C++调用golang函数,返回复杂的结构体。(本文后面涉及三个例子,省略了编译步骤,仅展示关键代码。具体操作步骤参考《C/C++调用Golang 一》)一 C++向golang传入复...