文章列表
本文主要包括二个部分,第一部分重点介绍在VC中,怎么样采用sizeof来求结构的大小,以及容易出现的问题,并给出解决问题的方法,第二部分总结出VC中sizeof的主要用法。
1、 sizeof应用在结构上的情况
请看下面的结构 ...
- 2009-09-11 15:27
- 浏览 762
- 评论(0)
在c/c++编程中,到底什么时候该用指针来传递参数呢?总结如下:
1. 需要改变实参的时候, 只能用指针.
2. 传递大型结构并且"只读"其元素的时候,
因为大型结构通过值传递, 需要拷贝其每个元素, 这样效率太低.
3. 需要遍历数组或频繁引用其元素时, 这样效率比使用下标高.
4. 动态分配空间时, 必须使用指针.
5. 传递数组时, 必须使用指针.
6. 函数返回指针时, 比如fopen
另外,有时候需要使用二级指针,即指针的指针,例如:
MemAllocate(char *a){
a=(char *)malloc(sizeof(char));
}
当调 ...
- 2009-06-08 10:33
- 浏览 2317
- 评论(0)
原文出处:http://blog.csdn.net/xuchenguang/archive/2008/04/17/2301550.aspx
Java的移位操作(收集+纠正+排版)
此收集来源于网络收集,是我整理、纠正以及排版,来为大家提供全面一点的知识讲解,可能有些地方排的不好,望谅解。
============== ...
- 2009-05-30 17:29
- 浏览 1383
- 评论(0)
详情请看:
http://blog.lmtw.com/b/peon/archives/2006/39703.html
- 2009-05-04 17:49
- 浏览 887
- 评论(0)
IP组播地址,23对于MAC23位,是怎么换算的?
一般情况下,LAN网络内的设备只通过MAC 进行通信。为了支持IP组播,让多台主机能够收到相同的分组,同时通过组播组来区分它们。IANA把01:00:5E
开头的以太网MAC块,作为组播地址对应的二层组播MAC地址。可以使用的MAC地址范围是01:00:5E:00:00:00 —— 01:00:5E:7F:FF:FF(前24比特为MAC头,地址相同,根据给定的MAC地址范围,第25比特为0)要求将28位的IP组播地址空间映射到23位的MAC地址空间中。具体的映射方法是将组播地址中的低23位放入MAC地址的低23位。注意之所以是2 ...
- 2008-11-22 12:58
- 浏览 3739
- 评论(0)
1.位图的理解
我们都明白图形格式中位图储存方式,其实就是以象素为单位的小方块,一格一格的纵横累积起来. 每一个小方块代表一种颜色,当然,如果对于黑白的二色图来说更加简单,只需要一个bit位即可表示. 这和我们的数据在计算机中的存储格式是相似的,内存条的也像是一格一格的bit位纵横交错而成. 因为这样的启发,我们发现一个个bit位象列队一样排列着,顺序相当严谨,如果我们的数据能够通过一种转换方式(逻辑上)能有序的和bit位一一对应起来的话,那么我们按照bit位的顺序把它输出来不就是排序的数据集合吗?
2.索引的概念
通过上面的描述,我们很容易联想到一样东西-索引。索引对于我们数 ...
- 2008-10-31 21:13
- 浏览 896
- 评论(0)
基本思想:
定义一个带排序数中的最大数为DataForStore数组长度,一遍扫描带排序数组,将其值作为DataForStore数组中对应下标的数加1,随后在DataForStore数组中即是一排序号的数,顺序输出即可。
当然该算法有条件限制,如排序数中的最大数不能太大,至于DataForStore数组可以采用位存储方案,这里为了便于实验,即忽略空间要素。。。。。。
只是扫描一遍数组即完成排序,真正的O(N)复杂度
using System;
using System.Collections.Generic;
using System.Text;
namespace Consol ...
- 2008-10-31 21:03
- 浏览 1072
- 评论(0)
http://hi.baidu.com/shirdrn/blog/item/2e7ca71ff2ea6acea786693d.html
- 2008-10-27 19:11
- 浏览 1035
- 评论(0)
最近写C常常遇到STATUS_ACCESS_VIOLATION错误,而遇到这种错误都有一个共同点,就是使用字符指针的时候出了问题。通俗点说就是对指针指向的字符串(硬编码里的字符串)进行了写操作造成的,到晚上翻了翻,知道了一些C语言的基本知识。这里补习补习了。
资料来源:http://blog.ncuhome.cn/user3/lionheart/archives/2006/14972.html
char* r = "hello word!";
char b[]="hello word!"
*r = 'w';
*b='w';
其实应该是语法错误, ...
- 2008-10-23 20:26
- 浏览 1367
- 评论(0)
在c++中写多线程程序时候,经常出现:
error C2065: '_beginthreadex' : undeclared identifier。
解决方法:
Project Settings里的General一栏中,Microsoft Foundation Classes下面选
Use MFC in a Shared DLL
这样该过之后就可以编译通过了。
- 2008-10-23 19:40
- 浏览 819
- 评论(0)
C/C++ Runtime 多线程函数
一 简单实例(来自codeprojct:http://www.codeproject.com/useritems/MultithreadingTutorial.asp)
主线程创建2个线程t1和t2,创建时2个线程就被挂起,后来调用ResumeThread恢复2个线程,是其开始执行,调用WaitForSingleObject等待2个线程执行完,然后推出主线程即结束进程。
/**//* file Main.cpp
*
* This program is an adaptation of the code Rex Jaeschke showed i ...
- 2008-10-23 19:37
- 浏览 1770
- 评论(0)
解开 Windows 下的临界区中的代码死锁
发布日期: 1/13/2005 | 更新日期: 1/13/2005
Matt Pietrek和 Russ Osterlund
http://www.microsoft.com/china/MSDN/library/enterprisedevelopment/softwaredev/ousCriticalSections.mspx?mfr=true
本文假定您熟悉 Win32、C++ 和多线程处理。
下载本文的代码:CriticalSections.exe (415KB)
摘要
临界区是一种防止多个线程同时执行一个特定代码节的机制,这一主题并 ...
- 2008-09-27 22:13
- 浏览 1189
- 评论(0)
关于临界区问题的分析
- 博客分类:
- c/c++
比如说我们定义了一个共享资源dwTime[100],两个线程ThreadFuncA和ThreadFuncB都对它进行读写操作。当我们想要保证dwTime[100]的操作完整性,即不希望写到一半的数据被另一个线程读取,那么用CRITICAL_SECTION来进行线程同步如下:
第一 ...
- 2008-09-27 22:06
- 浏览 1616
- 评论(0)
程序员对于Windows程序中应该用_beginthread还是CreateThread来创建线程,一直有所争论。本文将从对CRT源代码出发探讨这个问题。
I. 起因
今天一个朋友问我程序中究竟应该使用_beginthread还是CreateThread,并且告诉我如果使用不当可能 ...
- 2008-09-27 21:26
- 浏览 887
- 评论(0)
1、请定义一个宏,比较两个数a、b的大小,不能使用大于、小于、if语句
2、如何输出源文件的标题和目前执行行的行数
3、两个数相乘,小数点后位数没有限制,请写一个高精度算法
4、写一个病毒
5、有A、B、C、D四个人,要 ...
- 2008-09-22 20:50
- 浏览 2488
- 评论(0)