编程语言C/Python
文章平均质量分 63
nevasun
Its no y in "happiness", its an i.
展开
-
VC创建线程问题总结
今天在调试函数的时候,做了两个线程,一个线程用来发送消息,一个线程用来接收消息并将消息输出到文件。 可是,在函数执行的时候发现,发送线程线程创建成功,但是却总是不能执行到线程内。一头雾水,检查半天才发现,原来是main()函数中只创建了两个线程,线程创建成功即返回,根本没有线程执行的时间! 修改的方法很简单在main()函数return之前Suspendthread(Getcu原创 2010-12-17 20:09:00 · 704 阅读 · 0 评论 -
Python抓取中文网页
早就有想法把博客每天的访问流量记下来,刚好现在申请了GAE的应用,又开始学Python,正好拿这个练手。打算先利用Python把访问记录保存在本地,熟悉之后可以部署到GAE,利用GAE提供的cron就可以每天更近访问流量了。OK,开始~首先是简单的网页抓取程序:import sys, urllib2req = urllib2.Request("http://blog.csdn.net/原创 2012-03-08 10:11:55 · 9936 阅读 · 1 评论 -
对volatile修饰符的理解和使用
1. 什么是volatile修饰符?volatile关键字是一种类型修饰符,用它声明的类型变量表示可以被某些编译器未知的因素更改,比如:操作系统、硬件或者其他线程等。遇到这个关键字声明的变量,编译器对访问该变量的代码就不再进行优化,从而可以提供对特殊地址的稳定访问。2. 一个简单的例子volatile 影响编译器编译的结果。volatile变量是随时可能发生变化的,与volatile变原创 2012-03-23 17:14:17 · 11882 阅读 · 0 评论 -
深入理解C语言的指针*和引用&
首先是一道关于类型转换的面试题,要求给出float变量强制转换成int型和int &输出的结果。int test(){ float a = 1.0f; cout<<"value of (int)a is "<<(int)a<<endl; cout<<"value of &a is "<<&a<<endl; cout<<"value of (int &)a is "<<(int &)a原创 2012-03-09 10:46:37 · 3264 阅读 · 0 评论 -
关于字节对齐的讨论
在《程序员面试宝典》上看到的一道题,求结构体的长度。我觉得考虑到字节对齐,char占4位sizeof(test)应该是8+4+4+4=20,可是为什么答案是24?书上也说了如果结构体内有长度大于处理器位数的元素,那么以处理器的位数为对齐单位。struct{ double a; float b; int c; char d; }test;书上P49提到的a) 结构体的长度原创 2012-03-14 09:57:19 · 1372 阅读 · 0 评论 -
腾讯笔试题
发信人: afthr (afthr), 信区: ParttimeJob 标 题: 腾讯笔试题 发信站: 北邮人论坛 (Wed Apr 11 17:39:03 2012), 站内 1. 写出判断ABCD四个表达式的是否正确, 若正确, 写出经过表达式中 a的值(3分) int a = 4; (A)a += (a++); (B) a += (++a) ;(C) (原创 2012-04-11 17:56:43 · 2213 阅读 · 8 评论 -
使用比特位图解决八皇后问题
八皇后问题,是一个古老而著名的问题,是回溯算法的典型例题。该问题是十九世纪著名的数学家高斯1850年提出:在8X8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。 高斯认为有76种方案。1854年在柏林的象棋杂志上不同的作者发表了40种不同的解,后来有人用图论的方法解出92种结果。计算机发明后,有多种方法可以解决此问题。(百度百科)原创 2012-05-03 10:49:19 · 2552 阅读 · 0 评论 -
Python基础练习
1.python 为什么不需要变量名和变量类型声明? python语言中对象的类型和内存都是运行时确定的。在创建也就是赋值时,解释器会根据语法和右侧的操作数来决定新对象的类型。2.python 为什么不需要声明函数类型? 待补充3.python 为什么应当避免在变量名的开始和结尾使用双下划线? 合法标识符: -第一个字符必须是字母或下划线“_”原创 2012-06-07 11:37:58 · 5645 阅读 · 0 评论 -
Python练习——数组处理
对一门语言最好的学习方法就是多使用多练习,最近在学Python,以下是我在网上找的一些练习题,仅供大家学习参考。a = [1, 2, 3, 4, 5, 6]1. 将a中元素的序号及值打印出来2. 将a倒序成[6, 5, 4, 3, 2, 1]3. 将a中的偶数挑出*2,结果为[4, 8, 12]# 1for x in a: print a.index(x), ',', x原创 2012-06-07 14:23:21 · 4510 阅读 · 0 评论 -
某应用软件公司的面试题
昨天去一个公司面试,出的题比较典型,也很基础,拿出来和大家分享。1. 请描述const和#define相比,有何优点?答:#define定义的其实是一个常数的名字,就是说你可以把这个名字等价于常数使用,在编译时会被编译器替换为该常数。之所以这么做,仅仅是为了提高可读性,但是安全性不能得到保证。出于安全性的考虑,C++引入了const定义。当然这仅仅是const的功能之一。使用const,你原创 2012-05-24 18:37:55 · 1746 阅读 · 0 评论 -
《编程之美》之2.14求子数组之和的最大值
一个有N个整数元素的一维数组,这个数组存在很多子数组(子数组取自原数组部分连续的元素),那么子数组之和的最大值是什么呢?书中解法一采用最简单直白的解法,解法二采用分治算法,解法三根据分治算法和动态规划做出了优化,不再赘述。虽然我给出的解法实现和解法三比较类似,但是感觉思路更加清楚容易理解,这里简单陈述一下我的思想。题目要求给出数组中子数组和的最大值,这里以数组{a, b, c, d, e,原创 2012-02-24 14:29:51 · 1564 阅读 · 0 评论 -
更改Windows背景颜色后VA高亮消失的解决方案
网上都说白色的默认背景对眼睛不好,尤其是俺们这些程序员整天对着电脑。上百度google了一下“windows背景颜色”,按照说明修改成了淡绿色。但是,再打开VC6发现,VA的颜色高亮全没有了!把VA工具栏的各种按钮各种选项都查了一遍都没有解决问题,百度出来很多垃圾信息,想重装VA的心都有了,突然看到google出来的一个方法,只好试一试。 方法很简单,就是在Tools->Options,原创 2011-05-03 10:05:00 · 2440 阅读 · 2 评论 -
C中#define和inline的区别
C中宏定义和内联函数的区别是很容易让人忽视的一个地方,也是面试的时候经常被提起的一个问题。前几天写代码的时候由于对宏定义一个细节的忽视,导致程序运行总是出错。现在把宏定义可能出现的问题总结一下。 出错的代码结构如下:if(RLC_DC_BIT_MSK == data_or_control) LOG_INFO(...);else{ switch(ucPduType)原创 2011-10-24 20:11:11 · 5433 阅读 · 1 评论 -
内存不能为“read”或“written”的解决方案
内存不能为“read”或“written”的解决方案 有些人运行飚车程序的时候会弹出该内存不能为“read”的错误提示。希望以下文章能对大家有所帮助。 使用Windows操作系统的人有时会遇到这样的错误信息,运行某些程序的时候,有时会出现内存错误的提示,然后该程序会自动关闭或点击后关闭,严重的会无法关闭。 “0x????????”指令引用的“0x????????”内存。该内存不能为转载 2010-08-17 15:01:00 · 1256 阅读 · 0 评论 -
调试快捷键,Visual C++ 6.0 默认快捷键
调试.应用代码更改 Alt + F10 应用代码更改但不停止调试模式。有关更多信息,请参见编辑并继续。调试.自动窗口 Ctrl + Alt + V,A 显示“自动”窗口,以查看当前过程内当前执行行范围中的当前变量的值。有关更多信息,请参见中断执行。调试.全部中断 Ctrl + Alt + Break 临时停止执行调试会话中的所有进程。仅适用于“运行”模式转载 2010-12-10 13:51:00 · 1087 阅读 · 1 评论 -
i++和++i的效率问题
以前在论坛上看到过一个公司的面试题是问i++和++i的效率哪个更高,心想难道这不是一样的吗?后来学了汇编语言的皮毛,再加上最近调试程序,又想起了这个问题。最近在网上查,有人说跟编译环境有关,而且现在优化之后两者的效率一样。无奈,只能自己在VC6上试试咯~~~反汇编如下:5: int i = 0, j = 0;00401028 mov dword ptr [e原创 2010-12-24 15:40:00 · 2318 阅读 · 2 评论 -
Windows 下的进程间通讯及数据共享
Windows 下有很多方法实现进程间通讯,比如用 socket,管道(Pipe),信箱(Mailslot),等等。但最基本最直接的还是使用内存共享。其他方法最终还是会绕道这里。可想而知,如果物理内存只有一份,让这份内存在不同的进程中,映射到各自的虚拟地址空间上,每个进程都可以读取同一份数据,是一种最高效的数据交换方法。下面我们就讨论如何实现它。共享内存在 Windows 中是用转载 2010-11-23 14:22:00 · 663 阅读 · 0 评论 -
Windows控制CPU使用率曲线
前几天无聊,按照《编程之美》第一题写了个控制CPU使用率的程序。本以为没什么,可是今天早上在ChinaUnix上看到完全复制书上的代码毫无原创的帖子居然很火。。。所以把自己的代码贴出来,供以后学习…… 效果图如下: 其实程序的设计思想很简单,Windows任务管理器中CPU使用率基本上1s刷新一次,而CPU使用率其实就是在1s中CPU忙和闲时间的均值。因此,根据我原创 2011-03-04 09:13:00 · 5913 阅读 · 2 评论 -
VC6.0下打开文件失败的解决方法
虽说VC6已经算很古老了,但是他简单使用的环境还是让现在很多人还在使用。但是,在我们刚安装好使用的时候,经常会遇到这样的问题,VC6中打开文件或打开工程会报内存错误的问题。这个问题足以让VC下编程的初学者望而却步,笔者在刚使用VC6的时候同样遇到了这种问题,为了让初涉VC6环境的人少走弯路,因此将解决方法总结如下。 VC6打开按钮失效,一点就出现内存错误,但是把文件直接往里面托倒是可以的原创 2011-08-30 13:26:25 · 6443 阅读 · 1 评论 -
Vim使用技巧
在Vim下编译C代码,对于代码很小的文件,比如书中的一些例子想自己敲出来看看结果。在Vim中编辑,最笨的方法就是敲完,退出,在Shell中cc,看哪里有编译错误,再打开修改。改进:使用Vim提供的quickfix功能(默认已安装)。在Vim中 :make 即可进行编译; :cw 弹出quickfix窗口,列出所有编译错误; :cn 为下一个错误, :cp 为上一个错误。光标会自动跟踪。但是原创 2012-01-13 10:27:34 · 2560 阅读 · 1 评论 -
curl+awk抓取并分析网页
在之前有一篇文章介绍如何通过python抓取网页,见Python抓取中文网页,但是不久之后就发现这种方式对于CSDN的个人博客的抓取行不通了。早就听说了curl的强大,今天就拿curl来试一试。curl的功能很强大,这里有一个curl使用简介,大家可以参考,其他问题请自行百度google之。这里我们只用到了最基本的--connect-timeout 和-o,以抓取本博客为例:curl原创 2012-06-14 09:42:46 · 5637 阅读 · 0 评论