二级c语言上机模拟:在C语言里进行面向对象设计--模拟运行时识别

面向对象另个特性是运行时识别当然如果你系统设计足够完美话也用不到什么运行时识别但是有时使用下运行是识别能够是设计简化不少言归正传本文就是在前文基础上再研究下如何使用 C 来进行运行时识别我们知道 C 里虚实际上不是和对象绑定而是和类绑定也就是说个类个虚表而不是个对象个虚表所以如果个类虚较多时像前文那样定义接口:struct IStream{ void (*write)(IStream* pStre... [阅读全文]

itoa函数:itoa函数及atoi函数

C语言提供了几个标准库可以将任意类型(整型、长整型、浮点型等)数字转换为串以下是用itoa将整数转 换为串个例子: # stdio.h # stdlib.h void (void) { num = 100; char str[25]; itoa(num, str, 10); prf("The number 'num' is %d and the 'str' is %s. \n" , nu... [阅读全文]

c语言打开文件:C打开文件的追加参数

fopen(打开文件) 相关 openfclose 表头文件 #stdio.h 定义 FILE * fopen(const char * path,const char * mode); 介绍说明 参数path串包含欲打开文件路径及文件名参数mode串则代表着流形态 mode有下列几种形态串: r 打开只读文件该文件必须存在 r+ 打开可读写文件该文件必须存在 w 打开只写文件若文件存在则文件长度... [阅读全文]

序列化:序列化(Serialization)库教程

1. 个非常简单情形 输出档案(archive)类似于输出数据流(stream)数据能通过 或 & 操作符存储到档案(archive)中: ar data; ar & data; 输入档案(archive)类似于输入数据流(stream)数据能通过 或 & 操作符从档案(archive)中装载 ar data; ar & data; 对于原始数据类型当这些操作时候数据是简单“被存储... [阅读全文]

vcprofile:对VC的dll进行profile

如何profile个dll呢? 有以下步骤 1.) Delete the export (lib.exp) and lib file (lib.lib) for the library you want to check 2.) Tick in the tings dialog on the tab-page the checkbox "Enable profiling" 3.) Tick on ... [阅读全文]

trycatch:try{} catch(…){}

以前都是用try{} catch(…){}来捕获C中些意想不到异常 今天看了Winhack帖子才知道这种思路方法在VC中其实是靠不住例如下面代码: try { BYTE* pch ; pch = ( BYTE* )00001234 ; //给予个非法地址 *pch = 6 ; //对非法地址赋值会造成Access Violation 异常 } catch(...) { AfxMess... [阅读全文]

内存分配访问无效:C++内存分配的 5种思路方法的区别

在C中内存分成5个区他们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区   栈就是那些由编译器在需要时候分配在不需要时候自动清楚变量存储区里面变量通常是局部变量、参数等   堆就是那些由分配内存块他们释放编译器不去管由我们应用去控制般个就要对应个delete如果员没有释放掉那么在结束后操作系统会自动回收   自由存储区就是那些由malloc等分配内存块他和堆是十分相似不过它是用free来结... [阅读全文]

c语言编译器:C语言编译器的预定义符号

C语言编译器预定义符号 __LINE__ 当前(源代码文件)行号 [整数] __FILE__ 当前正在编译文件文件名 [串] __DATE__ 当前日期以“月月 日日 年年年年”形式给出 [串] __TIME__ 当前时间以“HH:mm:ss”格式给出 [串] __STDC__ 如果编译器符合ANSI C标准该宏为1否则为0 __STDC_HOSTE... [阅读全文]

c程序设计语言:C程序语言中数学函数

C语言中的数学    C语言提供了以下数学要使用这些时在文件头必须加入:    # math.h   编译时必须加上参数「-lm」(表示连结至数学函式库)例如「gcc -lm test.c」   的自变量和传回的值型别见自变量或前的型别宣告   已经在「math.h」或其它标头档宣告过了因此在使用时不必再加型别宣告例如「y=sin(x);」不用写成「y=double sin(double x);」... [阅读全文]

关键数据结构的帧结构:mad_herder和mad_frame

个MP3帧由帧头和帧数据构成Madlib分别填充mad_herder和mad_frame这两个结构然后进行解码mad_herder里包含mp3数据描述信息这个结构在frame.h头文件中定义: view plaincopy to clipboardpr? struct mad_header { enum mad_layer layer; /* audio layer (1, 2, or 3) */... [阅读全文]

c语言进制转换:C任意进制转换程序

以前做C培训时写个任意进制转换不使用库提供转换现贴出来做下记录 / scale.cpp : 定义控制台应用入口点 // # "stdafx.h" # stdio.h # stdlib.h # ctype.h # .h # math.h # WIDTH 10 # DATAWIDTH 50 # MAX 4294967295 # CONST_2 2 # CONST_3 3 # CONST_8 8 # C... [阅读全文]

ifdef用法:C/C++指令 #undef #ifdef #ifndef #if的使用方法

#undef   #undef 是在后面取消以前定义宏定义   该指令形式为   #undef 标识符   其中标识符是个宏名称如果标识符当前没有被定义成个宏名称那么就会忽略该指令   旦定义预处理器标识符它将保持已定义状态且在作用域内直到结束或者使用#undef 指令取消定义   在此中我们将取消在先前中对预处理器定义   源代码: # TRACE(x) # DBG #undef TRACE #... [阅读全文]

c语言volatile:c语言中的volatile关键字

volatile关键字是种类型修饰符用它声明类型变量表示可以被某些编译器未知原因更改 用volatile关键字声明变量i每次被访问时执行部件都会从i相应内存单元中取出i值 没有用volatile关键字声明变量i在被访问时候可能直接从cpu寄存器中取值(的前i被访问过也就是说的前就从内存中取出i值保存到某个寄存器中)的所以直接从寄存器中取值而不去内存中取值是编译器优化代码结果(访问cpu寄存器比访问... [阅读全文]

callback函数:什么是回调函数(callback)?

回调就是由你自己写你需要另外个而这个其中个参数就是你这个回调名这样系统在必要时候就会你写回调这样你就可以在回调里完成你要做事 模块A有个foo它向模块B传递foo地址然后在B里面发生某种事件(event)时通过从A里面传递过来foo地址foo通知A发生了什么事情让A作出相应反应 那么我们就把foo称为回调 例子: 回调是个很有用也很重要概念当发生某种事件时系统或其他将会自动你定义段回调在Windo... [阅读全文]

misra:MISRA C指导指南解读:MISRA C规则101-113)

2.1. 指针和 101.不能对指针进行算术操作(A) 本条目是为了防止指针指向无效内存空间例如 void myfunc(void) { *a; *b; arr[10]; a = arr; a ; /* 和规则冲突 */ a --; /* 和规则冲突 */ b = a+1; /* 和规则冲突 */ } 102.不能使用多余两层间接寻址方式(A)例如: struct my_struct { ... [阅读全文]

java学习路线图:完整的学习C++的读书路线图

/* 推荐给想学C朋友个简单但是完整学习C读书路线图: C Primer- c标准库- effective C- effective STL-深入探索C对象模型 C常用算法源码 算法(Algorithm):计算机解题基本思想思路方法和步骤算法描述:是对要解决 个问题或要完成项任务所采取思路方法和步骤描述包括需要什么数据 (输入什么数据、输出什么结果)、采用什么结构、使用什么语句以及如何安排这些语句... [阅读全文]

mfc42u.lib:cannot open file "mfc42u.lib"的解决方案

问题提出:VC提示找不到mfc42u.lib(cannot open file "mfc42u.lib") 介绍说明: LINK: fatal error LNK1104: cannot open file "mfc42u.lib" 表明安装VC时没有安装 Unicode版本 解决问题思路方法整理总结: 思路方法: 从VC安装盘中拷贝文件“MFC42U.LIB”、&ldqu... [阅读全文]

postmessage:SendMessage\PostMessage区别

功能:该将指定消息发送到个或多个窗口此为指定窗口窗口直到窗口处理完消息再返回而PostMessage区别将个消息寄送到个线程消息队列后立即返回 原型:LRESULT SendMessage(HWND hWndUINT MsgWPARAM wParamLPARAM IParam); 参数: hWnd:其窗口将接收消息窗口句柄如果此参数为HWND_BROADCAST则消息将被发送到系统中所有顶层窗口包... [阅读全文]

vcmd5函数用法:VC 自定义消息 postmessage使用方法(消息响应函数)

VC 自定义消息 postmessage使用方法 1. 在 resource.h文件添加如下代码 定个自己消息 # WM_MY_MESSAGE WM_USER + 100 //---------------------by tyds 2.在...view.h文件添加如下: //{{AFX_MSG(CPostmessageView) afx_msg void Ontydspostmessage; a... [阅读全文]

c语言连接数据库:用C语言操作SQLserver数据库的一个奇怪现象

用C语言操作数据库时已经成功连接并能够读写代码中有如下段内容: command = "INSERT o D31FATTR (D31ID, D31AB00) values ("; command = command + fileid_str; command = command + ",'"; command = command + autoAbs-abstractBuf; command = co... [阅读全文]

externalsymbolim:error LNK2001: unresolved external symbol __endthreadex错误的处理办法

# iostream.h # afx.h//CString结构头文件afx.h void { CString str="abc"; str.MakeUpper;//转为大写 coutstrendl; } 在调试c时,出现提示: 1.error C2065: 'CString' : undeclared identier或 2.nafxcwd.lib(thrdcore.obj) : error L... [阅读全文]

VC6.0调试篇:watch窗口的窍门技巧

写下VC6watch窗口些小窍门技巧对于调试过程是非常有帮助VC6年纪已经很大了微软好像也不再支持但是还是有很多人在用我本人是非常喜欢它小巧(相对vs2003,2005)占资源少即使这样它调试功能仍然超级强真是不错 好废话到此结束下面贴代码来介绍说明:="preprocessor"#stdio.h ="dp-cpp" ="alt"="preprocessor"#windows.h =... [阅读全文]

sqlite3vc:SQLite在VC下的使用

、SQLite介绍 SQLite 是用C语言编写开源数据库主要用于嵌入式你也可以把它集成在自己桌面中也有人将其替代Access用作后台数据库 SQLite 支持多数SQL92标准例如:索引、限制、触发和查看支持 支持 NULL、INTEGER、REAL、TEXT 和 BLOB 数据类型支持事务 2、下载SQLite SQLite可以到官方站点下载 http://www.sqlite.org/do... [阅读全文]

vs2008升级:C6的工程转换为VS2008的工程后 编译找不到而且不能升级vc90.pdb文件的问题解决思路方法

问题描述: 1e:\vcomh264net\vcomh\vcomh264net2.0 1.0.25 av\video\videoproc.cpp : error C2471: cannot update program database 'e:\vcomh264net\vcomh264net2.0 1.0.25 2008\vcomh264net2.0 1.0.25 av\debug\vc90.pd... [阅读全文]

msdos批处理文件:用DOS批处理来做数字图像处理

前言:我最近对语言挺着迷很想学习下编译原理询问了老师才知道我们已经取消了这么课程(他们觉得学了没用) 时间也没找到什么好教材如果有好心朋友可以推荐几本有关编译原理经典书籍感激不尽!图灵机是由输入、输出和状态转移 3要素组成广义上自动机模型理论上讲任何任何完备图灵机语言都可用于通用编程并且和其他完备图灵机语言样有效但实际上有些此类语言作用在其特定领域的外时可能令人非常痛苦例如m4是种有意完备图灵机但... [阅读全文]

二维数组:使用qsort对 2维字符数组排序疑难问题调试及解决过程

先说说我这个场景我中有个 2维代码段如下: char files[101][64]; // files[i][0] sotres the length of the i-the file name 正如注释中说 files[i ][0] 用来存储 files[i ] 这个串长度串是从 files[i ][1] 开始存储每个串长度保证不超过 60, 所以才考虑这样来存储现在突然发现在串都存储到 fi... [阅读全文]

重载CView::OnDraw() 文档显示

此段代码在MFC下显式个文档 CMfcsView : public CView; void CMfcsView::OnDraw(CDC* pDC)//在视图上显示CDC设备描述符表 { CMfcsDoc* pDoc = GetDocument;//这个获得和视图相连接文档指针如果没有相连接文档返回NULL ASSERT_VALID(pDoc);//此检测pDoc指针是否返回NULL // TODO... [阅读全文]

源代码加密:加密/弄乱C源代码

的前发表了6个变态C语言Hello World[酷壳链接] [CSDN链接]主要是是像大家展示了些C语言变态玩法也向大家展示了下是可以写得让人看不懂在那篇文章中可以看到很多人留言很多人都觉得很好玩是那本来是用来供朋友们“消遣作乐”供娱乐娱东而已不必太过认真 不过通过这种极端写法大家可以看到源代码都可以写得那么复杂难懂大家也许在赞叹的余笑了的而我则希望大家能够在娱乐以后认真研... [阅读全文]

内存分配访问无效:内存分配管理的代码 用C实现

主要是解决自己分配内存忘记释放问题自己定义了几个取代了malloc,calloc,realloc,free这几个尽量跟原有使用方法致 头文件mypool.h #ndef _MYPOOL_H # _MYPOOL_H struct Node { struct Node *preNode;//前个节点 struct Node *nextNode;//后个节点 void **varAddr;//存储指针变... [阅读全文]

有效性验证:用VC验证EMAIL有效性

最近编写个软件Software中需要验证EMAIL有效性本以为网络上应该到处都是没想到google上查绝大部分都是ASP或JavaScript代码VC或Delphi代码几乎没有没办法只好跟据别人写ASP代码以及大部分人些验证方面经验自已写了 整理总结了下合法email地址格式如下(只是大致上判断希望大家能不断充实或有更好想法): 1. 首必须用字母而且其它只能用26个大小写字母、0~9及_-.@符... [阅读全文]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 > >> 共853条 分29页