C & C++
文章平均质量分 71
yj512029078
这个作者很懒,什么都没留下…
展开
-
C函数调用原理及函数栈帧分析
之前在看关于内联,宏和普通函数调用的时候想到了这个问题,感觉原创 2014-04-15 21:12:46 · 572 阅读 · 0 评论 -
移位运算及其compiler-dependent
C中的移位操作,其实内容不太多,但是you原创 2014-05-21 20:36:14 · 961 阅读 · 0 评论 -
二进制操作
关于二进制操作很常见,很多笔试面试题中也有涉及,本篇主要围绕原创 2014-04-09 20:33:45 · 730 阅读 · 0 评论 -
strcpy函数实现
要求:不使用库函数,利用C语言实现strcpy函数原创 2014-04-07 18:04:58 · 516 阅读 · 0 评论 -
C变量(auto、static、register、extern)函数(内部、外部)与存储
本篇主要阐述下C语言中关于变量的分类,函数的分类及其在内存空间中的存储和作用域问题。基本全是文字,但是很重要,也是自己在学习C++,JAVA,C#等语言后,然后C语言中容易弄混的地方。哎,有时候语言学多了,总结少了,容易弄混~~一、变量分类1.1 按照作用域分类1)源文件程序的编译单位是源程序文件,一个源程序文件可以包含一个或若干个函数。2)局部变量与全局变量原创 2014-04-02 18:47:57 · 1032 阅读 · 0 评论 -
指针强制转换
C 和 C++ 的指针强制转换时不太一样的, C++ 提供了4中类型,用于更加精细化控制指针的强制转换。1、指针转换原理讨论指针的强制转换之前,我们先要理解清楚指针的根本含义。最通俗的解释,指针即是地址,但是,指针绝不仅仅只是地址。1)指针存着所指对象地址2)指针存着所指对象的类型和类型大小试想我们定义一个某类型指针p,后可以p++,p--,*p这些都与“指针记录了所指对象类型原创 2014-04-02 13:47:23 · 939 阅读 · 0 评论 -
Big-endian 和 Little-endian 详解
网上有一篇博文分析的非常详细,这里列出参考地址:http://blog.csdn.net/ce123_zhouwei/article/details/6971544这里自己列出一些觉得重要的地方,供后续参考。一、大小端定义 Big-Endian和Little-Endian的定义如下:1) Little-Endian就是低位字节排放在内存的低地址端,高位字节排放在内存的高地址端。原创 2014-04-02 12:00:31 · 770 阅读 · 0 评论 -
C语言bool类型
声明:本文为转载文章,自己copy过来仅为学习之用,来源于 http://blog.csdn.net/daheiantian/archive/2011/02/05/6241893.aspx,觉得重要的地方加红色标注,谢谢博主! 也许很多人都和我一样,不知道现在的C语言已经有了布尔型:从C99标准开始,类型名字为“_Bool”。 在此之前的C语言中,使用整型i转载 2014-04-02 11:26:03 · 1094 阅读 · 0 评论 -
C语言符号扩展
C语言中,符号扩展非常常见,大体一般发生在 a =b, 而 a、b为不同数据类型情况下。一、短数据类型扩展为长数据类型1、要扩展的短数据类型为有符号数的进行符号扩展,即短数据类型的符号位填充到长数据类型的高字节位(即比短数据类型多出的那一部分),保证扩展后的数值大小不变。例如:a)char x=10001001b; short y=x; 则y的值应为11111111 100原创 2014-04-02 09:42:08 · 2391 阅读 · 0 评论 -
位段(bit-field)
一、位段结构struct node{ unsigned int a:4; //位段a,占4位 unsigned int :0; //无名位段,占0位 unsigned int b:4; //位段b,占4位 int c:32; //位段c,占32位 int :6; //无名原创 2014-04-02 10:11:56 · 558 阅读 · 0 评论 -
关于Union和Struct对齐
关于union,struct,还有机器数赋值,总是感觉自己认识不是特别深刻,这里使用小DEMO程序加以说明,具体的详细细节描述其它地方已经有说明和记录,这里不再说明。#include union myun {struct { int x; int y; int z; }u; int k; }a; int main() { a.u.x =4; a.u.y =5;原创 2014-04-01 19:26:17 · 543 阅读 · 0 评论 -
内存对齐(Data Structure Alignment)
一.何为内存对齐,内存对齐的作用 我们现在使用的算机中内存空间都是按照字节(Byte)划分的,理论上说,似乎对任何类型的变量的访问可以从任意地址开始,但实际情况则是在访问特定类型变量的时候经常在特定的内存地址访问,这就需要各种类型的数据按照一定的规则在内存空间上排列,而不是顺序的一个接一个地排放,这就是对齐。内存对齐主要是基于效率考虑,有用空间换时间的意思,减少数据存取指令周原创 2014-04-01 15:17:32 · 1016 阅读 · 0 评论 -
位运算求解两个数的平均值
1. 给定两个数x和y,朴素算法求解两个数的平均值是(x+y)/2,但是这种方法有个问题就是当x和y的和溢出的时候得到的平均值是错误的,我们可以采用位运算来解决这个问题。 一般对于x和y不大的时候,利用(x+y) >> 1可以得到两个数的平均值 对于一个数a,a > n表示的是a/2^n2. x和y的平均值可以用以下公式求:(x&y)+((x^y)>原创 2014-08-20 09:10:09 · 1287 阅读 · 0 评论