
C/C++编程
llhyy17
活着就要经历各种各样的事情
展开
-
Strcpy / Strncpy的工作方式
Strcpy的函数原型: char *strcpy(char *dst, const char *src)函数功能: 将字符串src拷贝到字符串dst中去。用法解析: 在执行字符串拷贝之前,“用户需要保证”dst指向的空间足够大。否则的话,可能会产生意想不到的后果。 如果dst所指向的空间不足以存储src中的字符串的话,不要以为只是遗失了src中存储原创 2010-03-08 22:08:00 · 1287 阅读 · 0 评论 -
Adope flash player ActiveX10安装文件Flash10l.ocx手动注册后不能被删除的解决方案
<br />需求:软件在安装时注册Flash10l.ocx文件,卸载时删除Flash10l.ocx,安装包工具:NSIS<br /> <br />问题:卸载Flash10l.ocx文件失败,文件可以重命名,拷贝,不能被覆盖,删除,delete(这里的delete包括手动删除,shift删除,cmd删除,你懂的!!)时提示“Access is denied” or “此文件正在被另一个程序使用”or“磁盘空间不足或被写保护”等错误信息<br /> <br />方法1:<br />1.将Flash10l.ocx原创 2010-12-15 16:40:00 · 4119 阅读 · 1 评论 -
memcpy和memmove的区别
以前在动态申请分配内存时,都使用memcpy,而看到别人的源码上使用的是memmove,本着一个优秀程序员的好奇心和进取心 (O(∩_∩)O哈哈~,别打我),就到网上查了查,很多网友都说是memcpy不支持overlap,memmove支持overlap。 MSDN上如是描述:memmove:RemarksThe memmove function copies原创 2010-03-17 16:43:00 · 1062 阅读 · 0 评论 -
Win32下两种用于C++的线程同步类(下)
上一篇中我介绍了一种通过封闭Critical Section对象而方便的使用互斥锁的方式,文中所有的例子是两个线程对同一数据一读一写,因此需要让它们在这里互斥,不能同时访问。而在实际情况中可能会有更复杂的情况出现,就是多个线程访问同一数据,一部分是读,一部分是写。我们知道只有读-写或写-写同时进行时可能会出现问题,而读-读则可以同时进行,因为它们不会对数据进行修改,所以也有必要在C++中封装一种方转载 2010-03-12 21:08:00 · 533 阅读 · 0 评论 -
Win32下两种用于C++的线程同步类(上)
线程同步是多线程程序设计的核心内容,它的目的是正确处理多线程并发时的各种问题,例如线程的等待、多个线程访问同一数据时的互斥,防死锁等。Win32提供多种内核对象和手段用于线程同步,如互斥量、信号量、事件、临界区等。所不同的是,互斥量、信号量、事件都是Windows的内核对象,当程序对这些对象进行控制时会自动转换到核心态,而临界区本身不是内核对象,它是工作在用户态的。我们知道从用户态转换到核心态是需转载 2010-03-12 21:06:00 · 612 阅读 · 0 评论 -
两道编程题,思想很重要
用户输入年月日,计算该日是该年的第几天并输出int days(int y, int m, int d){ /* 数组mt存放各月天数 */int n=0,mt[ ]={31,28,31,30,31,30,31,31,30,31,30,31}; if (LEAP_YEAR(y)) mt[2]=29;原创 2010-03-12 21:04:00 · 893 阅读 · 0 评论 -
C语言的malloc()和free()函数原理【整理】
一、malloc()和free()的基本概念以及基本用法:1、函数原型及说明:void *malloc(long NumBytes):该函数分配了NumBytes个字节,并返回了指向这块内存的指针。如果分配失败,则返回一个空指针(NULL)。关于分配失败的原因,应该有多种,比如说空间不足就是一种。void free(void *FirstByte): 该函数是将之前用malloc分原创 2010-03-12 21:01:00 · 20830 阅读 · 4 评论 -
C语言数据类型大小和结构体中变量的地址分配方法【整理】
数据类型: char short int long float double (long double) gcc3.2.2: 1 2 4 4 4 8 12 Visual C++:1 2 4 4 4 8原创 2010-03-08 22:09:00 · 2147 阅读 · 0 评论 -
sprintf函数使用详解【整理】
printf 可能是许多程序员在开始学习C 语言时接触到的第二个函数(我猜第一个是main),说起来,自然是老朋友了,可是,你对这个老朋友了解多吗?你对它的那个孪生兄弟sprintf 了解多吗?在将各种类型的数据构造成字符串时,sprintf 的强大功能很少会让你失望。由于sprintf 跟printf 在用法上几乎一样,只是打印的目的地不同而已,前者打印到字符串中,后者则直接在命令行上输出。这也原创 2010-03-08 22:06:00 · 1088 阅读 · 0 评论 -
C语言高效编程的几招
引 言: 编写高效简洁的C语言代码,是许多软件工程师追求的目标。本文就工作中的一些体会和经验做相关的阐述,不对的地方请各位指教。第1招:以空间换时间 计算机程序中最大的矛盾是空间和时间的矛盾,那么,从这个角度出发逆向思维来考虑程序的效率问题,我们就有了解决问题的第1招——以空间换时间。例如:字符串的赋值。方法A,通常的办法:#define LEN 32char string1 [LEN];me转载 2010-03-08 20:48:00 · 474 阅读 · 0 评论 -
C++程序调用已编译的C程序【整理】
如果C++程序要调用已经被编译后的C 函数,该怎么办?假设某个C 函数的声明如下:void foo(int x, int y);该函数被C 编译器编译后在库中的名字为_foo,而C++编译器则会产生像_foo_int_int之类的名字用来支持函数重载和类型安全连接。由于编译后的名字不同,C++程序不能直接调用C 函数。C++提供了一个C 连接交换指定符号extern“C”来解决原创 2010-03-08 22:05:00 · 873 阅读 · 0 评论 -
QToolbutton实现图标和文字居中,qss
无原创 2015-08-14 18:25:30 · 28803 阅读 · 6 评论