首页
学习
活动
专区
工具
TVP
发布

转载gongluck的CSDN博客

https://blog.csdn.net/gongluck93
专栏成员
149
文章
366710
阅读量
52
订阅数
A*,那个传说中的算法
周日的下午,微信simplemain,老王又来找大伙儿聊技术了~~ 今天想跟大家聊的,是我们经常用到,但是却让大家觉得十分神秘的那个算法:A* 。 想必大家都玩儿过对战类的游戏,老王读书那会儿,中午吃
_gongluck
2018-03-09
1.2K0
YV12转RGB24的计算转换和bmp(dib)文件的显示保存
最近又接触到图像处理这一块,翻查到一年前自己写的代码http://blog.csdn.net/gongluck93/article/details/52813042,发现有点看不懂了! 所以自己又整理了一波(YV12转RGB24,显示和保存dib): #include "stdafx.h" /******************************************************************* * Copyright(c) 2017 * All rights rese
_gongluck
2018-03-09
1.3K0
黑暗的内存管理
黑暗的内存管理 很多人对 C 语言深恶痛绝,仅仅是因为 C 语言迫使他们在编程中必须手动分配与释放内存,然后通过指针去访问,稍有不慎可能就会导致程序运行运行时出现内存泄漏或内存越界访问。 C 程序的内存泄漏只会发生在程序所用的堆空间内,因为程序只能在堆空间内动态分配内存。NULL 指针、未初始化的指针以及引用的内存空间被释放了的指针,如果这些指针访问内存,很容易就让程序挂掉。 除了堆空间,程序还有个一般而言比较小的栈空间。这个空间是所有的函数共享的,每个函数在运行时会独占这个空间。
_gongluck
2018-03-08
1.1K0
AdjustWindowRect 与 SetWindowPos
这两个函数经常一起使用,所以放到一起讲: 1 AdjustWindowRect     函数功能:该函数依据所需客户矩形的大小,计算需要的窗口矩形的大小。计算出的窗口矩形随后可以传递给CreateWindow函数,用于创建一个客户区所需大小的窗口。     函数原型:BOOL AdjustWindowRect(LPRECT lpRect ,DWORD dwStyle,BOOL bMENU);     参数:     lpRect:指向RECT结构的指针,该结构包含所需客户区域的左上角和右下角的
_gongluck
2018-03-08
1.7K0
野指针分析
1. 野指针的概念   所谓的野指针,就是说指针指向的那块内存,你没有合法操作的权限,也就是指针指向非法的内存空间,这样的指针就叫做野指针。 2. 野指针产生的原因 (1) 指针变量未初始化         任何指针变量刚被创建时不会被自动置为NULL,它的缺省值是随机的,所以这块内存,所以指针变量在创建时,要么初始化让它指向一块合法的内存,要么置为NULL。 #include <stdio.h> #include <stdlib.h> int main(void) {      //i
_gongluck
2018-03-08
9280
统计字符串中的单词数目
//统计字符串中的单词数目——统计字符串中单词的数目,更复杂的话从一个文本中读出字符串并生成单词数目统计结果。 /* Test my2test,12test...?tesst hehe,dsf..e3
_gongluck
2018-03-08
1.7K0
跟我一起写Makefile
makefile 介绍 make命令执行时,需要一个 makefile 文件,以告诉make命令如何去编译和链接程序。 首先,我们用一个示例来说明makefile的书写规则。以便给大家一个感性认识。这个示例来源于gnu的make使用手册,在这个示例中,我们的工程有8个c文件,和3个头文件,我们要写一个makefile来告诉make命令如何编译和链接这几个文件。我们的规则是: 1)如果这个工程没有编译过,那么我们的所有c文件都要编译并被链接。 2)如果这个工程的某几个c文件被修改,那么我们只编译被修改的c文件
_gongluck
2018-03-08
1K0
初探WinInet网络api
//必须的头文件,而且要链接wininet.lib #include <WinInet.h> #define UM_SOCKET (WM_USER + 1) void CNetTimeDlg::OnBnClickedOk() { // TODO: 在此添加控件通知处理程序代码 // CDialogEx::OnOK(); // 使用winsocket,获取国际标准时间并设置系统时间 WSADATA WSAData = { 0 }; int iError = 0; iError = WSASta
_gongluck
2018-03-08
8460
如何用Doxgen制作chm格式文档
对程序员来说,在开发自己的接口时,制作一个easy-go的文档也是coding中必不可少的一步,而且是相当重要的一步,虽然国内很多程序员,现在都略过了这一步。 本文的前提是,大家已经在代码中写了符合生成注释文档的注释,关于注释的规则,可以参考百度文库里的一个文档 “使用Doxygen生成chm帮助文档使用详解”, 链接地址:http://wenku.baidu.com/view/110caf8002d276a200292e44.html 接下来,就开始我们的简单制作chm文档之旅吧,嘿嘿! 系统信息:win
_gongluck
2018-03-08
2.8K0
关于GetDC与GetWindowDC
关于GetDC与GetWindowDC GetDc函数:用于获得hWnd参数所指定窗口的客户区域的一个设备环境。 所获得的设备环境可以是通用、类或者私有类型,具体由指定窗口的类风格决定。对于通用设备环境,GetDc函数每次获取一个设备环境时都会用默认属性对它进行初始化。该函数获得的类和私有设备环境会与它们最后一次的设置保持一致。当设备环境不再需要时,应该调用ReleaseDC函数将其释放。    GetWindowDC函数:返回hWnd参数所指定的窗口的设备环境。 获得的设备环境覆盖了整个窗口(包括非客
_gongluck
2018-03-08
1.8K0
使用Jpeglib
/******************************************************************* * Copyright(c) 2017 * All rights reserved. * * 文件名称: Jpeg.cpp * 简要描述: 使用Jpeglib * * 创建日期: 2017-08-14 * 作者: gongluck * 说明: * * 修改日期: * 作者: * 说明: ********************
_gongluck
2018-03-08
1.1K0
程序的入口
操作系统装载应用程序后,做完初始化工作就转到程序的入口点执行。程序的默认入口点由连接程序设置, 不同的连接器选择的入口函数也不尽相同。在VC++下,连接器对控制台程序设置的入口函数是 mainCRTStartup,mainCRTStartup 再调用main 函数;对图形用户界面(GUI)程序设置的入口函数是 WinMainCRTStartup,WinMainCRTStartup 调用你自己写的 WinMain 函数。具体设置哪个入口点是由连接器的“/subsystem:”选项确定的,它告诉操作系统
_gongluck
2018-03-08
1.7K0
结构体字节对齐
      在用sizeof运算符求算某结构体所占空间时,并不是简单地将结构体中所有元素各自占的空间相加,这里涉及到内存字节对齐的问题。从理论上讲,对于任何变量的访问都可以从任何地址开始访问,但是事实上不是如此,实际上访问特定类型的变量只能在特定的地址访问,这就需要各个变量在空间上按一定的规则排列,而不是简单地顺序排列,这就是内存对齐。       内存对齐的原因:       1)某些平台只能在特定的地址处访问特定类型的数据;       2)提高存取数据的速度。比如有的平台每次都是从偶地址处读取数据,对
_gongluck
2018-03-08
1.6K0
拉丁猪文字游戏
拉丁猪文字游戏——这是一个英语语言游戏。基本规则是将一个英语单词的第一个辅音音素的字母移动到词尾并且加上后缀-ay(譬如“banana”会变成“anana-bay”)。可以在维基百科上了解更多内容。 #include <iostream> #include <string> using namespace std; bool PigLatin(string& str) { string::size_type pos = str.find_first_of("aeiou"); string sub =
_gongluck
2018-03-08
1.4K0
c语言中函数参数处理顺序-从右向左
c语言中函数参数处理顺序-从右向左      下面我们来看2个案例,分析下c语言中函数参数处理顺序。      第一个: #include "stdio.h" void fn(int a,int b,int c) {         printf("%d,%d,%d", a, b, c); } void main() {         int a = 3;         fn(a++, a++, a++); }      输出结果: 5,4,3      原因分析:   
_gongluck
2018-03-08
2.7K0
自制截图工具V1.0
之前比较空闲,就尝试着做了个截图工具,功能还算实用。等以后有时间再研究V2.0。 这个项目都是用C语言做的,所以还算精简。 #include <windows.h> #include <stdio.h> #include "resource.h" #pragma comment(lib,"winmm.lib") HINSTANCE g_hInstance = NULL;//全局进程句柄 HWND g_hwndMain = NULL;//全局主窗口句柄 #define UM_SCREENCUT WM_U
_gongluck
2018-03-08
1.3K0
逆转字符串
逆转字符串——输入一个字符串,将其逆转并输出 #define _CRT_SECURE_NO_WARNINGS #include <iostream> #include <string> using namespace std; //ANSIC,有中文就出错 //bool ReverseStringA(char* str) //{ // int len = strlen(str); // unsigned char temp; // for (int i = 0; i < len / 2; ++i) /
_gongluck
2018-03-08
7240
判断是否为回文
//判断是否为回文——判断用户输入的字符串是否为回文。回文是指正反拼写形式都是一样的词,譬如“racecar”。 #define _CRT_SECURE_NO_WARNINGS #include <iostream> using namespace std; bool IsPlalindromeW(const wchar_t* str) { size_t len = wcslen(str); for (int i = 0; i < len; ++i) { if (str[i] != str[le
_gongluck
2018-03-08
2.2K0
前缀、中缀、后缀表达式
它们都是对表达式的记法,因此也被称为前缀记法、中缀记法和后缀记法。它们之间的区别在于运算符相对与操作数的位置不同:前缀表达式的运算符位于与其相关的操作数之前;中缀和后缀同理。 举例: (3 + 4) × 5 - 6 就是中缀表达式 - × + 3 4 5 6 前缀表达式 3 4 + 5 × 6 - 后缀表达式 中缀表达式(中缀记法) 中缀表达式是一种通用的算术或逻辑公式表示方法,操作符以中缀形式处于操作数的中间。中缀表达式是人们常用的算术表示方法。 虽然人的大脑很容易理解与分析中缀表达式,但对计算
_gongluck
2018-03-08
1.2K0
sscanf的高级用法 正则表达式
sscanf() - 从一个字符串中读进与指定格式相符的数据。 函数原型: int sscanf( const char *, const char *, ...); int sscanf(const char *buffer,const char *format,[argument ]...); buffer存储的数据 format格式控制字符串 argument 选择性设定字符串 sscanf会从buffer里读进数据,依照format的格式将数据写入到argument里。 头文件 #include<
_gongluck
2018-03-08
6.6K0
点击加载更多
社区活动
【纪录片】中国数据库前世今生
穿越半个世纪,探寻中国数据库50年的发展历程
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档