C/C++
文章平均质量分 50
C/C++编程语言
j衣l日
Linux嵌入式软件、Android Camera HAL、图像
展开
-
C/C++常用函数汇总(大小端)-待续
// 大小端数据转换uint32_t swap_endian(uint32_t val){ val = ((val << 8) & 0xFF00FF00 | (val >> 8) & 0xFF00FF); return (val << 16) | (val >> 16) ;}欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这原创 2020-09-01 15:34:54 · 425 阅读 · 0 评论 -
位操作n&(n-1)用法
求某一个数的二进制表示中1的个数while (n > 0) { count ++; n &= (n-1);}判断一个数是否是2的方幂n > 0 && ((n & (n - 1)) == 0)原创 2016-09-26 23:15:56 · 561 阅读 · 0 评论 -
一个关于定义的程序
#include <stdio.h> class abc; void del(abc *pobj) { delete pobj; } class abc { public: abc(){ printf("abc\r\n"); } ~abc(){ printf("~a...原创 2016-09-25 09:42:55 · 247 阅读 · 0 评论 -
C语言(关键字)
枚举类型枚举是一种特殊的构造类型,它本身和int 是等价的,但它的值是有限个int 常量的合集,这些常量称为枚举符。enum test{MON, TUE, WED, THU, FRI, SAT, SUN};enum test a = MON; //定义枚举变量a,它的值是枚举常量MON。用枚举定义的变量,其值只能取枚举列表里面的值,如果不在该列表中,则会报错或者警告枚举符...原创 2016-09-19 11:15:45 · 322 阅读 · 0 评论 -
C++常见注意点
1. 继承方式 继承方式 继承具体说明 public 父类的访问级别不变 protected 父类的public成员在派生类编程protected,其余的不变 private 父类的所有成员变成private举例说明#include <iostream>using namespace std;class b...原创 2016-09-18 17:16:32 · 342 阅读 · 0 评论 -
字符串拷贝函数memcpy和strncpy以及snprintf 的性能比较
文章来源:http://www.jb51.net/article/39993.htm 以下是对字符串拷贝函数memcpy和strncpy以及snprintf它们之间的性能进行了比较,需要的朋友可以过来参考下问题:函数memcpy(dest, src, sizeof(dest))、strncpy(dest, src, sizeof(dest))和snprintf(dest, ...原创 2016-09-15 21:29:05 · 1356 阅读 · 0 评论 -
C语言(函数)
指针变量type *p : p是指针变量,类型是type*,用来存储地址。 type决定了通过这个指针变量访问内存解析内存数据的方式。 1 . 访问内存的大小。 2. 内存中二进制数据所解析的类型。 3. 加减法的偏移量p+1。注意点数组做形参时 数组名退化为普通指针switch(表达式) int char short 表达式的结果的类型可以是 整数类型,枚举类型,或...原创 2016-09-09 11:21:07 · 302 阅读 · 0 评论 -
C语言(数组与指针2)
二维数组数组里面存储的元素是数组的话得到的就是二维数组,采用如下方式定义: int a[2][3] = { {1, 2, 3}, {4, 5, 6} }; 关于数组名二维数组初始化分行初始化 int a[3][3] = { {1,2,3}, {4,5,6}, {7,8,9} };顺序初始化 int a[3][3] = { 1, 2, 3, 4, 5,...原创 2016-09-05 14:10:16 · 218 阅读 · 0 评论 -
C语言(数组与指针)
数组数组的元素在内存中连续存储各数组元素具有同一类型(大小相等)数组名代表数组的首地址(第一个元素的地址)数组与地址地址做加法与整数做加法是有区别的,地址做加法时,是以地址的类型大小为单位进行相加的。以int arr[5]为例,arr 代表了int 类型元素的地址,由于int 类型占用4 个字节,那么,arr 加1,实际上是数值增加的是4,这样,就可以通过*(arr...原创 2016-09-05 12:51:01 · 375 阅读 · 0 评论 -
C语言(循环结构)
循环结构使用循环结构的步骤一般分三步:初始化循环条件,常见的手段是通过一个变量来控制循环,那么第一步就应该给这个变量赋初值。编写循环结构要执行的操作,其中必须要有一步是改变循环条件,最终让循环条件不成立,比如增加变量使其超越临界值。检查循环条件是否符合成立,以便在某个时该跳出循环。不能跳出的循环称为死循环,死循环会严重占用CPU 的时间片资源,除非有意为之,否则编程中应该尽量避免。...原创 2016-09-05 11:43:43 · 1093 阅读 · 0 评论 -
C语言(数据类型)
数据类型基本数据类型 整型 int字符型 char单精度浮点型 float双精度浮点型 double限定符 符号限定符 有符号 signed无符号 unsigned长度限定符 短整型 short长整型 long超长整型 long long注意:C 语言标准只规定了char 占用一个字节,而未规定int 占几字节,具体的字节数由编译器与机器架构实现,在32 ...原创 2016-08-30 15:38:30 · 437 阅读 · 0 评论 -
C语言(标识符)
计算机发展三个阶段机器代码、汇编语言、高级语言随着计算机编程语言的发展,C已经被归类到中级语言的行列了。C语言特点C 语言是一种结构化的程序设计语言。C 语言既有高级语言那样贴近人自然语言的特点,又不失低级语言的功能。C 语言存在规范的标准,使用同一标准写出的C 语言代码可以无障碍地在各套CPU架构下进行移植,可移植性好也是C 语言强大的体现。十进制转...原创 2016-08-30 15:07:40 · 1707 阅读 · 0 评论 -
实现两个整数值的交换(无中间变量)
方法1:算术运算: a = a + b; b = a - b; a = a - b; 方法2:位运算: a ^= b; b ^= a; a ^= b;#include<stdio.h>int main(){ int a = 10; int b = 23; a = a + b; b ...原创 2016-05-09 20:14:36 · 412 阅读 · 0 评论 -
递归实现2~9进制转换
说明 将十进制正整数转换成2~9进制数,在屏幕上打印出来。 一般循环取余数的方法也可以,但是打印出来不太方便。因为对于整数,取余倒序排列,先取出的余数需要最后打印,势必要将其先存储起来,会多一些步骤。 使用递归实现会比较简单。屏幕输入十进制数和需要转换的进制数值,用逗号隔开。代码:#include<stdio.h>void transN...原创 2016-04-20 23:59:02 · 574 阅读 · 0 评论 -
字符串操作函数的实现方法(代码)
说明 字符串操作函数在C语言中的使用是相当多的,也难怪标准库函数有定义实现,也是一个很明智的选择,帮助我们简化了对字符串的操作。 其实我们也可以尝试写一下这些常用函数的具体实现方法,也可以帮助我们对这些函数有更深的理解,之后使用时也会更加自如。查看函数的使用手册要实现一个函数,当然先需要知道它的作用是什么,相信大多数人都会摆渡,基本也都能解决问题。Linux环境下,...原创 2016-04-11 18:50:05 · 702 阅读 · 0 评论 -
C语言语法“陷阱”——函数声明
说明 整理自《C陷阱与缺陷》(C Traps and Pitfalls) 第2章 学习笔记——根据本人理解,加以表述,并非完全摘抄。1、区分float *g(), (*h)();注解: 很明显()的优先级高于 *,所以*g()相当于*( g() ),这样就很明确了,g是一个函数,其返回值是float *型的值,即指向浮点数的指针。 而h是一个函数指针,根...原创 2016-03-30 17:16:51 · 508 阅读 · 0 评论 -
C语言中的技术陷阱
说明 C语言深入学习阶段,我正在读《C语言编程之道》这本书,整理了C语言中的一些技术陷阱。这本书上的封面上有一句话我觉得挺有道理——“每多学一点知识,就少写一行代码”,知识便是财富。一、C语言中的标识符是区分大小写的这是很基本的问题,初学者也很容易忽视。二、”{}”与”[]”的混淆使用例如:int main(){ int a[2][3...原创 2016-03-14 22:26:41 · 567 阅读 · 0 评论