- 博客(17)
- 资源 (1)
- 收藏
- 关注
转载 int *(*pt)[10] 和 int **ptr[10]
指针数组 数组指针 指针函数 函数指针int *p[4]; //指针数组。 是个有4个元素的数组, 每个元素的是指向整型的指针。(数组的每个元素都是指针)int (*p)[4]; //数组指针。 它是一个指针,指向有4个整型元素的数组。 (一个指针指向有4个整型元素的数组)int *func(void); //
2015-05-14 10:39:34 1952
原创 C++用new和不用new创建类对象
1,new创建类对象,使用完后需使用delete删除,跟申请内存类似。所以,new有时候又不太适合,比如在频繁调用场合,使用局部new类对象就不是个好选择,使用全局类对象或一个经过初始化的全局类指针似乎更加高效。2,非new创建类对象,创建方式,new对象指针作为函数参数和返回值需要手动释放,该类析构函数会自动执行。而new申请的对象,则只有调用到delete时再会执行析构函数,如果程序退出而
2015-03-31 13:24:43 603
转载 #pragma once
#ifndef的方式依赖于宏名字不能冲突,这不光可以保证同一个文件不会被包含多次,也能保证内容完全相同的两个文件不会被不小心同时包含。当然,缺点就是如果不同头文件的宏名不小心“撞车”,可能就会导致头文件明明存在,编译器却硬说找不到声明的状况。#pragma once则由编译器提供保证:同一个文件不会被编译多次。注意这里所说的“同一个文件”是指物理上的一个文件,而不是指内容相同的两个文件。带来的
2015-03-06 13:53:00 361
转载 c++中出现error LNK1123: 转换到 COFF 期间失败的错误解决办法
在运行c++中出现error LNK1123: 转换到 COFF 期间失败的错误,这是很多人遇到的问题,从网络上收集了答案,下面的三种解决方案算是最全的了。解决方案1: 原来机器上安装了VS2010非常正常,安装VS2012后,出现提示 错误 13 error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏,如图: 出现的具体原因是微软的链接文
2015-03-06 13:52:50 1412
转载 二维数组和指针(C语言
二维数组和指针二维数组和指针1、二维数组和数组元素的地址若有以下定义:int *p, a[3][4]; 1)二维数组a由若干个一维数组组成在C语言中定义的二维数组实际上是一个一维数组,这个一维数组的每一个成员又是一个一维数组。如以上定义的a数组,则可视
2011-09-15 20:06:50 496
转载 笔记:Bresenham画线算法的推导
<br />基本上Bresenham画线算法的思路如下:<br />// 假设该线段位于第一象限内且斜率大于0小于1,设起点为(x1,y1),终点为(x2,y2).<br />// 根据对称性,可推导至全象限内的线段.<br />1.画起点(x1,y1).<br />2.准备画下个点。x坐标增1,判断如果达到终点,则完成。否则,由图中可知,下个要画的点要么为当前点的右邻接点,要么是当前点的右上邻接点.<br />2.1.如果线段ax+by+c=0与x=x1+1的交点的y坐标大于M点的y坐标的话,下个点为U(
2010-10-02 15:38:00 441
转载 _attribute_((packed))
<br />1. __attribute__ ((packed)) 的作用就是告诉编译器取消结构在编译过程中的优化对齐,按照实际占用字节数进行对齐,是GCC特有的语法。这个功能是跟操作系统没关系,跟编译器有关,gcc编译器不是紧凑模式的,我在windows下,用vc的编译器也不是紧凑的,用tc的编译器就是紧凑的。例如:<br />在TC下:struct my{ char ch; int a;} sizeof(int)=2;sizeof(my)=3;(紧凑模式)<br />在GCC下:struct my{ c
2010-09-29 09:08:00 506
原创 hardware 中的几个地址问题之二
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、SECTIONS { . = 0x30000000; .text : { *(.text) } .rodata ALIGN(4) : {*(.rodata)} .data ALIGN(4) : { *(.data) } .bss ALIGN(4) : { *(.bss) *(COMMON) }}、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
2010-09-24 16:28:00 412
原创 hardware 中的几个地址问题
<br />@******************************************************************************<br />@ File:head.s<br />@ 功能:设置SDRAM,将程序复制到SDRAM,然后跳到SDRAM继续执行<br />@****************************************************************************** <br /> <br />.te
2010-09-17 14:18:00 449
转载 arm汇编语言调用C函数之参数传递
<br /> 对于ARM体系来说,不同语言撰写的函数之间相互调用(mix calls)遵循的是 ATPCS(ARM-Thumb Procedure Call<br />Standard),ATPCS主要是定义了函数呼叫时参数的传递规则以及如何从函数返回,关于ATPCS的详细内容可以查看ADS1.2<br />Online Books ——Developer Guide的2.1节。这篇文档要讲的是<br />汇编代码中对C函数调用时如何进行参数的传递以及如何从C函数正确返回。<br /> 不同于x86的参
2010-09-17 10:25:00 347
原创 warning: no newline at end of file
<br /> GCC中如果文件最后不加上一行空行的话,就会吐个warning:no newline at end of file。 在《Rationale for the C99 standard》一文中,有C99的相关信息:<br /> A backslash immediately before a newline has long been used to continue string literals, as well as preprocessing command lines.
2010-09-16 10:04:00 360
转载 ( *(volatile unsigned long * ) )
<br />转载]有关volatile unsigned long一些说明(2010-07-24 15:14:32)<br />转载原文标签:转载 刚刚学习嵌入式,感觉这个文章很好,有助于我的理解,谢谢了,呵呵,拿走了<br />原文地址:有关volatile unsigned long一些说明作者:傲雪迎风对于不同的计算机体系结构,设备可能是端口映射,也可能是内存映射的。如果系统结构支持独立的IO地址空间,并且是端口映射,就必须使用汇编语言完成实际对设备的控制,因为C语言并没有提供真正的“端口”的概念。如
2010-09-15 21:03:00 457 1
原创 c#中volatile关键字的作用
<br />恐怕比较一下volatile和synchronized的不同是最容易解释清楚的。volatile是变量修饰符,而synchronized则作用于一段代码或方法;看如下三句get代码:inti1; intgeti1(){returni1;}volatileinti2; intgeti2(){returni2;}inti3; synchronizedintgeti3(){returni3;}<br /> geti1()得到存储在当前线程中i1的
2010-08-30 21:42:00 558
原创 ubuntu之重装
<br /> 不知道是倒霉还是天意所为,10个小时后,windows embedded ce 6.0没有装好,电脑的硬盘还坏了。想不通。还好,联想的售后很到位,是不是因为我们是大客户呢就不得而知了,很快就来人还了一块。<br /> <br /> 忙活了一下午,装完windows,装ubuntu。没有想到平时很容易装好的ubuntu也给我拉稀摆带。出现了以下错误:<br /> <br />mount of filesystem failed<br />a maintenanc
2010-06-01 21:14:00 428
原创 驱动 makefile之痛
学习驱动的时候,第一驱动是关于字符设备驱动的。关于makefile,由于和应用程序的makefile不大一样啊,拿到一看很多变量什么的都没有见过。哎,makefile的基础差,尝到苦果了。无奈下载了《makefile跟我一起写》看了几遍,不得其法啊。还是解决不了我遇到的问题。百度,“armlinux 驱动 makefile”遇到有源码的,复制来,修改下,还是不行。琢磨了好些时间,差不多
2010-05-17 21:42:00 902
转载 ubuntu下交叉编译环境搭建
ubuntu下交叉编译环境搭建2009年11月09日转到评论 发表评论 1.下载arm-linux-gcc-3.4.1.tar.bz2到任意的目录下。 arm-linux-gcc-3.4.1.tar.bz2 的下载地址如下: http://www.handhelds.org/download/projects/toolchain/arm-linux-gcc-3.
2010-04-01 21:16:00 472
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人