C/C++
文章平均质量分 84
学习C/C++知识。
veryitman
不断的给别人和自己创造心流
展开
-
聊聊 WAV
如果要解码 WAV 文件, 首先需要了解一下 WAV 音频文件的格式.今天说的是 线性 PCM 对应的 WAV 数据的格式以及如何在 iOS 上面使用 faad2 进行解码和播放改格式的音频数据。PCM 的种类线性化 PCMA 律量化的 PCMU 律量化的 PCMAD PCMGSMWAV 简介WAV 只是该音频文件的后缀名,其完整名称缩写是 WAVE.WAVE(Wave...原创 2020-02-16 17:42:16 · 863 阅读 · 1 评论 -
GCC系列: __attribute__((visibility(““)))
在 objc-api.h 里面有很多关于__attribute__ 的定义.例如#if !defined(OBJC_VISIBLE)# if TARGET_OS_WIN32# if defined(BUILDING_OBJC)# define OBJC_VISIBLE __declspec(dllexport)# else# ...原创 2015-07-04 18:58:15 · 10357 阅读 · 1 评论 -
GCC系列: 加载静态链接库
在 mac osx 操作系统下, 请先移步->GCC系列: Homebrew安装GCC和binutils.GCC加载链接库会依赖加载顺序, 这样会导致无法调用预期的方法.下面举例说明.Car 和 Bus 都有 drive 函数, 在 main 里面调用谁的 drive, 取决于链接库的加载顺序.Car.c#include<stdio.h> #i...原创 2015-07-04 14:12:25 · 3438 阅读 · 0 评论 -
OpenSSL: RSA分段解密实战
原文 OpenSSL: 实战-RSA分段解密,CSDN同步发布。转载请注明出处,谢谢!简介本篇是继 OpenSSL: 简单易上手的RSA加解密 后的补充篇,实战篇。在实际项目中,并没有像上篇文章写的那么简单,实际情况要复杂的多。万变不离其宗,抽丝剥茧,复杂事务的背后一定是有其本质原因和原理的存在,而我们就是挖掘原理,探索本质的福尔摩斯。今天这篇文章,带领大家参与到实际项目中运用RSA...原创 2020-01-12 11:44:20 · 1175 阅读 · 0 评论 -
OpenSSL: 简单易上手的RSA加解密
原文 OpenSSL: 简单易上手的RSA加解密,CSDN同步发布。转载请注明出处,谢谢!简介这篇文章是继 OpenSSL: 用VS2017创建C工程、OpenSSL: 完成VS2017的配置 两篇文章的第3篇,前两篇分别跟大家分享了如何在 visual studio2017 中创建C工程,配置OpenSSL的开发环境以及使用 openssl 开源库实现base64的编解码。本篇跟大家...原创 2020-01-05 15:20:30 · 857 阅读 · 0 评论 -
OpenSSL: 完成VS2017的配置
原文 OpenSSL: 完成VS2017的配置,CSDN同步发布。转载请注明出处,谢谢!简介在 OpenSSL: 用VS2017创建C工程 中跟大家分享了如何在 Visual Studio 2017 中创建 C 工程和注意事项以及遇到问题的解决方案,今天我们开始在 Visual Studio 2017 中搭建 OpenSSL 的开发环境。很多人在配置 OpenSSL 环境中遇到了不少...原创 2019-12-15 16:15:07 · 1144 阅读 · 4 评论 -
OpenSSL: 用VS2017创建C工程
原文 OpenSSL: 用VS2017创建C工程,CSDN同步发布。转载请注明出处,谢谢!简介该系列文章给大家(主要是刚接触Visual Studio工具的C开发者)带来使用开发工具Visual Studio 2017进行OpenSSL编程,包括base64,AES、DES和RSA加解密等内容。对于C/C++的编程,我工作之后基本都是在Linux上面写,很少在Windows上面耕耘。最...原创 2019-11-23 17:05:51 · 684 阅读 · 0 评论 -
你有没有遇到叫二狗子的那个哥们?
原文 调侃C中的define,CSDN同步发布。转载请注明出处,谢谢!二狗子二狗子这个名字,在大街小巷,在电视剧中几乎都能听到。我也不知道老一辈的父母为什么这么喜欢给自己的孩子取这样的名字,唯一能让我信服的理由是:顺口!大叔大伯们之所以叫这个名字还有一个理由,之前孩子多,希望孩子像小狗儿一样好喂养。正好我们村有个孩子也叫二狗子,大名叫张力万,无论是叫二狗子还是叫张力万,都指的是同一个人...原创 2019-06-15 23:25:34 · 776 阅读 · 0 评论 -
C函数中返回字符数组
原文 C函数中返回字符数组,CSDN同步发布。转载请注明出处,谢谢!内容简介在阅读本篇文章之前,建议大家看一下下面2篇文章:不见得你会计算C字符串长度双宿双飞的 malloc 和 free这篇文章主要分享两个点:1、为什么作为局部变量的字符数组不能直接返回,而字符指针却可以?2、当字符数组是局部变量的时候,函数如何返回它?3、字符数组(char [])和字符指针(char...原创 2019-05-10 23:47:37 · 20732 阅读 · 7 评论 -
你会计算C字符串长度吗?
原文 不见得你会计算C字符串长度,CSDN同步发布。转载请注明出处,谢谢!C 字符串在 C 语言中,字符串实际上是使用字符 '\0' 终止的一维字符数组。以下几种方式表示的都是 C 字符串的正确表达方式。// 要以 '\0' 结尾char greeting[6] = {'H', 'e', 'l', 'l', 'o', '\0'};// 要以 '\0' 结尾char greet...原创 2019-05-09 21:44:45 · 4485 阅读 · 0 评论 -
C语言中free、malloc 等内存管理函数
简介这两个函数是一对好朋友,几乎是形影不离。有 malloc 的地方就应该有 free 的存在。今天跟大家聊聊 malloc 和 free 这对好基友,这两个函数都是对堆内存进行管理的函数,另外还有 calloc、realloc、reallocf、valloc 等堆内存管理函数。void *在进行下面话题之前,我们先回忆一下 void * 是什么?void * 表示未确定类型的指针。C/...原创 2019-05-02 15:16:26 · 6629 阅读 · 3 评论 -
C 结构体指针初始化
原文 C 结构体指针初始化,CSDN同步发布。转载请注明出处,谢谢!在使用指针之前,务必要将其初始化。这个是我们最早学习 C 语言的时候,书上经常说的一个问题。在工作中,我们反而会经常忘记这条金科玉律。本篇文章的所有代码都经 gcc-7 编译器编译过。关于在 macOS 中如何安装和使用 gcc,可以参考 GCC: Homebrew 安装 GCC 和 Binutils 这篇文章。结构体成......原创 2019-04-26 23:18:31 · 26456 阅读 · 5 评论 -
design principle: 优秀程序应该遵循的原则
这篇文章讲解的是关于编程应该遵循的原则。我只是大致翻译一下,还是细看英文吧,这样才不会被别人误导。The Principles of Good Programmingby Christopher DigginsToday's post is a lightly edited repost from my blog at翻译 2011-11-05 01:01:21 · 3472 阅读 · 0 评论 -
jni tutorial:windows下的HelloJNI
你需要保证你满足下面条件:1. 使用 Eclipse 在 windows(32位操作系统)下学习。2. 安装了MinGW,并且配置好,保证 gcc 可以使用。一、新建项目HelloJNI.javapackage it.man.jni;public class HelloJNI { static { System.loadLibrary("HelloJN原创 2013-08-11 00:17:41 · 2040 阅读 · 0 评论 -
char数组构造string
这是一个老掉牙的话题, 但是你稍加不注意就会出错.最近在写一个可以跨平台打印的程序,就遇到这个问题,故记之.共勉!用 char 数组初始化string#include using std::string;using std::cout;int main(int argc, const char * argv[]){ char chArray[] =原创 2015-04-30 23:48:43 · 6390 阅读 · 0 评论 -
makefile: gcc 工作流程
c 语言经过预处理、编译、连接最后生成可执行文件。在 linux 的编译器 gcc 下面,看看其工作流程。流程图:预处理,将包含的 *.h 文件或者一些预处理语句(#define)处理一下,然后将 *.c 文件生成 *.i 的中间文件。但是注意了 gcc 不会自动生成这样一个文件,如果需要,自己加 -E 参数即可。编译、汇编阶段生原创 2012-03-10 21:44:29 · 2080 阅读 · 0 评论 -
makefile: g++ 简单使用
学习android 终究还是需要研究一下其底层框架,所以,学习c++很有必要。这篇博客,算是linux(ubuntu) 下学习 c++ 的一个入门。刚开始学习编程语言的时候,最好还是使用命令行操作,抛开IDE 工具。1. 编辑器编辑器推荐 vi / vim(如果你有耐心的话,可以学习一下 vi 的命令)、scite(比较好用)等。2.原创 2011-11-05 22:14:56 · 4921 阅读 · 0 评论 -
char | string | NSString 之间的转换
char to string方式一 char c1 = 'd'; string s1(1, c1); cout << "s1 = " << s1 << endl;方式二 char c2 = 'y'; char tc[128]; sprintf(tc, "%c", c2); string s2...原创 2015-05-01 15:08:16 · 1682 阅读 · 0 评论 -
makefile:简单入门
简单的入门操作,高手请无视.C.h 文件#ifndef __C__HEADER#define __C__HEADERclass C{public: C(); C(C& c);};#endifC.cpp 文件#include "C.h"#include using namespace std;C::C(){}C::C(C& c)原创 2015-03-28 22:28:47 · 1758 阅读 · 5 评论 -
GCC系列: Homebrew安装GCC和binutils
最近在研究 GCC, 分享一下.这篇博客主要分享mac 下安装 gcc 和 binutils 工具.mac 下输入 gcc -v 其实是链接指向了LLVM, 不是 GNU 的 GCC.安装 gccbrew tap homebrew/versionsbrew install gcc49brew 会自动为你安装相关依赖, 比如gmp4, mpfr2, libmpc08, ...原创 2015-06-28 12:15:55 · 12116 阅读 · 0 评论 -
typedef、define
这段时间总是在与C/C++打交道,主要是跨平台数据的传输。C++一般使用结构体定义数据,小结一下 typedef、define。下面这篇文章来自:http://developer.51cto.com/art/201104/256060.html,稍加改动。typedef 和 define 的详细区别typedef是C语言语句,其功能是用户为已有数据类型取“别名”。例如:t...原创 2011-08-02 21:09:32 · 1572 阅读 · 0 评论