随笔分类 - c
摘要:如果本地有多个网卡(即多个ip),要指定本地发送网卡,则在建立的socket上bind所指定的网卡进行connect和send操作。例子程序如下:#include #include "WinSock2.h"#pragma comment(lib,"ws2_32.lib")SOCKET tcp_soc...
阅读全文
摘要:关于字节序:是字节之间的事情,多字节数据类型,字节的排序问题,类似于在十进制数中,十位放在个位的左边还是右边的问题。例如int类型有4个字节,值为0x12345678,地址为0x000010~0x000013,那么在0x000010是存放0x12还是存放0x78.分下面两种情况: 1)低地址放低位(小端字节序,小端即低位在前)。实际存储为0x78 56 34 12. 使用这种字节序的典型为x86机器,即intel和amd的cpu。 2)低地址放高位(大端字节序)。实际存储为0x12 34 56 78. 其余的厂家一般使用这种字节序。sun,ibm等等。另外网络字节序也是这种,二进制文件如音视频
阅读全文
摘要:#include #include int main() {for(int i = 0; i < 3; i ++) { int pid = fork(); if(pid == 0) { printf("child\n"); } else { printf("father\n"); } } return 0; } 请问输出结果是什么? 初看,想当然认为结果是3对child-father,只是顺序不确定,而且按照Unix环境高级编程中的说法,极端的情况下可能还会出现两个输出的内容相互夹杂的情况。 但是,在Unix测试了一下发现输出竟然...
阅读全文
摘要:Linux内核定义了“零页面”(内容全为0的一个物理页,且物理地址固定),应用层的内存分配请求,如栈扩展、堆分配、静态分配等,分配线性地址后,就将页表项条目指向“零页面”(指定初始值的情况除外),这样“零页面”就被所有进程共享,当向页面执行写入操作时,内核就会新分配一个物理页,实行“写时拷贝”操作,这样就实现了物理页面的延迟分配(如果只有读没有写,则无需另分配物理页)。动态内存通过glibc库的malloc函数分配,当现有地址空间不够时(即malloc维护的空闲链表中没有足够空间),就调用brk/sbrk扩展进程空间的相关线性区段,然后将对应页表项条目指向“零页面”,写操作时再分配新页面。这样
阅读全文
摘要:字符串常量到底存放在哪个存储区 分类: c语言2013-02-23 16:57 445人阅读 评论(0) 收藏 举报 C语言c语言字符串常量 字符串常量,放在哪个存储区呢?是“自动存储区”还是“静态存储区”中? 比如: char *pstr="hello world!"; 这里,"hello world!"是一个字符串常量, pstr是在栈中的变量。...
阅读全文
摘要:打开vs2003,新建安装和布署项目,取名为你的程序名称,我选择的是“安装向导”,操作步骤与blog.csdn/johnsuna/archive/2004/12/19/221618.aspx的操作类似,这下不同的是向导结束之后。 在应用程序文件夹中加入你的自定义ico,这个ico将决定你的应用程序显示图标了,同时包括快捷方式的图标。 在右边“解决方案资源管理器”中,点击你的解决方案名称(...
阅读全文
摘要:va_list、va_start、va_arg、va_end的原理与使用 概述 由于在C语言中没有函数重载,解决不定数目函数参数问题变得比较麻烦;即使采用C++,如果参数个数不能确定,也很难采用函数重载.对这种情况,有些人采用指针参数来解决问题.下面就c语言中处理不定参数数目的问题进行讨论. 定义 大家先看几宏. 在VC++6.0的include有一个st...
阅读全文
摘要:程序在的内存中的分配(常量,局部变量,全局变量,程序代码) 一. 在c中分为这几个存储区 1.栈 - 由编译器自动分配释放 2.堆 - 一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收 3.全局区(静态区),全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。- 程序结束释放 ...
阅读全文
摘要:c/c++在线编译器 一直以来都喜欢用手机看书,尤其是在上班时。看的最多的是编程一类的书,主要是C++,看着就想写写代码,可是电脑用不能用,怎么办?于是想到用UC浏览器找找看网上有没有在线的编译器,想什么时候写代码都可以验证。于是就找了几个,各有千秋吧。中文的我没找到,全是英文的,不过英文不难,其实也不需要懂英文,只要知道在什么地方写代码,然后点击按钮进行在线编译就行了。好了,下面看介绍: ...
阅读全文
摘要:在最近的项目中,我们涉及到了“内存对齐”技术。对于大部分程序员来说,“内存对齐”对他们来说都应该是“透明的”。“内存对齐”应该是编译器的“管辖范围”。编译器为程序中的每个“数据单元”安排在适当的位置上。但是C语言的一个特点就是太灵活,太强大,它允许你干预“内存对齐”。如果你想了解更加底层的秘密,“内存对齐”对你就不应该再透明了。 一、内存对齐的原因 大部分的参考资料都是如是说的: ...
阅读全文
摘要:全文阅读分步阅读 初学MFC的注意了,这是一篇很好的文章,以前在网上看到的,觉得很好就保存了下来,现在分享给大家:(由于出处找不到,暂标为原创) 用MFC制作的工程由很多文件构成,它不能象一般C++程序那样随意在类外定义全局变量,在这里要想定义能被工程内多个文件共享的全局变量和函数必须用一些特殊方法才行。实际上有多种方法可以实现,这里只介绍两种方法。 一、在...
阅读全文
摘要:windows平台回车是\r\n linux为\n mac为\r 标准的unicode还是utf-8的回车输出只有\n
阅读全文
摘要:1、首先创建一个MFC对话框框架,在对话框资源上从工具箱中添加上一个Tab Control 控件,根据需要修改一下属性,然后右击控件,为这个控件添加一个变量,将此控件跟一个CTabCtrl类变量绑定在一起,这里设为m_tabctrl 2、创建两个新的对话框资源,其属性作如下修改: Border:none //边界为空,这样它就没了标题栏 Style :Child // 这样这个模板...
阅读全文
摘要:1.VC2005:无法执行添加/移除操作,因为代码元素是只读的....多个解决办法 最近在编程过程中偶尔会遇到这个错误, 非常烦人, 因为一旦添加事件处理函数就会弹出这个窗口 解决方案: 1、重启VC 2、打开Resource.h文件看看 一看就知道了 有些定义重复了 可以手动改掉 保存 编辑器重新加载。。。。。。。。 3、关闭解决方案,删除ncb文件重新添加即可 4、实...
阅读全文
摘要:MFC中相对路径有时候会抽风,你问我为什么,我也不知道。比较好的方法就是获得绝对路径,这是一种较为稳妥且移植性较好的解决方式。 基本方法是调用一个函数:GetModuleFileName,这个函数会返回exe文件的路径,包括exe文件名,所以要做的事情就是把*.exe那段给去掉。代码如下: CString 类名::GetFilePath() { char exepath[MAX_...
阅读全文
摘要:C/C++内存泄漏及检测 2011-02-20 17:51 by 吴秦, 9357 阅读, 6 评论, 收藏, 编辑 “该死系统存在内存泄漏问题”,项目中由于各方面因素,总是有人抱怨存在内存泄漏,系统长时间运行之后,可用内存越来越少,甚至导致了某些服务失败。内存泄漏是最难发现的常见错误之一,因为除非用完内存或调用malloc失败,否则都不会导致任何问题。实际上,使用C/C++这类没有垃圾回收机制...
阅读全文
摘要:CCCCCCCC 微软C++ debugging运行时用该值标记未初始化过的栈内存 CDCDCDCD 微软C++ debugging运行时用该值标记未初始化过的堆内存 FEEEFEEE 微软的HeapFree函数用该值来标记被释放了的堆内存 ABABABAB 为堆分配的内存后, 微软的HeapAlloc函数用该值标记"no man's land"哨兵位. 所谓哨...
阅读全文
摘要:哈哈哈,我也遇到这个问题,烦了我半个小时那个弹框。不过我解决它的问题居然是往那个源文件随便敲点注释上去,让它编译时得以重新编译。就这样好了,设断点时,那个可恶的弹框就不再出现了。 单步调试时出错,原来的断点处显示一个空心圆加一个右下角的警告图标,假如从另一个函数跳入到设置这种无效断点的文件时,便会出现错误的对话框。 网上搜了一下原因,有人写: 昨天对dnn跟踪调试的时,设了断点后运行到...
阅读全文
摘要:qsort函数简介 功能:使用快速排序例程进行排序 用法:voidqsort(void*base,intnelem,intwidth,int(*fcmp)(constvoid*,constvoid*)); 参数:1待排序数组首地址2数组中待排序元素数量3各元素的占用空间大小4指向函数的指针,用于确定排序的顺序c函数qsort()和bsearch()的用法 使用qsort()排序并用bsearch()搜索是一个比较常用的组合,使用方便快捷。 qsort的函数原型是void__cdeclqsort(void*base,size_tnum,size_twidth,int(__cdecl*c...
阅读全文
摘要:转载自 http://lifeinlinux.blogspot.com/2008/07/gsl.html GSL(GNU Scientific Library)是一个 C 写成的用于科学计算的库,下面是一些相关的包 Desired=Unknown/Install/Remove/Purge/Hold| Status=Not/Inst/Cfg-files/Unpacked/Failed-cfg/H...
阅读全文

浙公网安备 33010602011771号