C/C++ Programing
文章平均质量分 65
Vincent_Song
士不可以不弘毅任重而道远
展开
-
C语言中的序列点和副作用
C 语言中,术语副作用(side effect)是指对数据对象或者文件的修改。例如,以下语句 var = 99;的副作用是把 var 的值修改成 99。对表达式求值也可能产生副作用,例如: se = 100对这个表达式求值所产生的副作用就是 se 的值被修改成 100。 序列点(sequence point)是指程序运行中的一个特殊的时间点,在该点之原创 2012-10-16 08:57:29 · 5110 阅读 · 0 评论 -
C语言宏定义##连接符和#符的使用
C语言中如何使用宏C(和C++)中的宏(Macro)属于编译器预处理的范畴,属于编译期概念(而非运行期概念)。下面对常遇到的宏的使用问题做了简单总结。关于#和##在C语言的宏中,#的功能是将其后面的宏参数进行字符串化操作(Stringfication),简单说就是在对它所引用的宏变量通过替换后在其左右各加上一个双引号。比如下面代码中的宏:#define WARN_IF(EXP)原创 2012-10-27 18:29:06 · 1411 阅读 · 0 评论 -
看代码猜意思
一、根据一定的策略和算法插入链表 walk=&sg_timer_list.mount_list; while(*walk) { if((*walk)->run_time>node->run_time) { node->next=(*walk); break; } walk=&(*walk)原创 2012-08-07 21:14:58 · 1501 阅读 · 1 评论 -
swprintf和sprintf的使用
C/C++ code char szA[100]; //An ANSI string bufferWCHAR szW[100]; //A Unicode string buffer//Normal sprintf:all strings are ANSIsprintf(szA, "%s","ANSI Str");//Converts原创 2012-04-25 12:06:31 · 7385 阅读 · 0 评论 -
VC命令行编译参数简介
CL.exe 是控制 Microsoft C 和 C++ 编译器与链接器的 32 位工具。编译器产生通用对象文件格式 (COFF) 对象 (.obj) 文件。链接器产生可执行文件 (.exe) 或动态链接库文件 (DLL)。 注意,所有编译器选项都区分大小写。 若要编译但不链接,请使用原创 2012-08-16 22:09:16 · 4893 阅读 · 0 评论 -
c#调用c++带有回调函数方法的实现
在c++中有个回调函数指针的概念,只需要某个函数在调用定时器函数时传入一个函数指针就能达到目的,但C#中没有函数指针的概念,我们该怎样来实现呢。其实说到回调函数,大家应该能想到c#中的委托,虽然名字不一样,但在各自的语言范畴都能实现相似的功能。所以我们就可以大胆的尝试下,把c#中的委托传给c++,看c++是否能够承认它就是回调函数。首先用c++写一个带有回调函数的方法 Test,在此省略。原创 2012-11-06 16:41:49 · 17547 阅读 · 2 评论 -
反汇编分析__stdcall和__cdecl的异同
C++代码如下:.h头文件#pragma once#ifdef DLLTestAPI#else#define DLLTestAPI _declspec(dllimport)#endifint DLLTestAPI __stdcall add(int, int);int DLLTestAPI __cdecl subtract(int, int);原创 2012-12-27 11:54:32 · 1759 阅读 · 1 评论 -
可执行程序中的BSS段
BSS段:BSS段(bss segment)通常是指用来存放程序中未初始化的全局变量的一块内存区域。BSS是英文Block Started by Symbol的简称。BSS段属于静态内存分配。BSS节不包含任何数据,只是简单的维护开始和结束的地址,以便内存区能在运行时被有效地清零。BSS节在应用程序的二进制映象文件中并不存在。如果在嵌入式里,很可能没加载器,你的程序是直接由bootload程序加载原创 2012-12-26 21:42:41 · 4253 阅读 · 1 评论 -
利用反汇编手段解析C语言函数
1问题的提出函数是 C语言中的重要概念。利用好函数能够充分利用系统库的功能写出模块独立、易于维护和修改的程序。函数并不是 C 语言独有的概念,其他语言中的方法、过程等本质上都是函数。可见函数在教学中的重要意义。在教学中一般采用画简单的堆栈图的方式描述函数调用,但由于学生对堆栈没有直观认识,难以深入理解,因此教学效果往往并不理想,从而限制了对模块化程序设计思想的理解和应用。2解决方法在《原创 2012-12-29 14:23:17 · 19506 阅读 · 0 评论 -
C语言中printf的格式控制的完整格式
printf的格式控制的完整格式:% - 0 m.n l或h 格式字符下面对组成格式说明的各项加以说明:①%:表示格式说明的起始符号,不可缺少。②-:有-表示左对齐输出,如省略表示右对齐输出。③0:有0表示指定空位填0,如省略表示指定空位不填。④m.n:m指域宽,即对应的输出项在输出设备上所占的字符数(包括小数点)。N指精度。用于说明输出的实型数的小数位数。为指定原创 2013-02-26 16:59:41 · 3635 阅读 · 0 评论 -
宽字符处理函数和窄字符处理函数对应表
字符分类: 宽字符函数普通C函数描述 iswalnum() isalnum() 测试字符是否为数字或字母 iswalpha() isalpha() 测试字符是否是字母 iswcntrl() iscntrl() 测试字符是否是控制符 iswdigit() isdigit() 测试字符是否为数字 iswgraph() isgraph() 测试字符是否是可见字符 is原创 2011-12-26 14:57:02 · 2056 阅读 · 0 评论 -
Why C++?王者归来
因为又有人邀请我去Quora的C2C网站去回答问题去了,这回是 关于 @laiyonghao 的这篇有点争议的博文《2012 不宜进入的三个技术点》ActionScript,Thread 和 C++, C++争议的争议最大。(要我说,.NET比C++更需要慎重进入,呵)。我就在这里回复一下这个问题吧。正好我一个月前看到一个视频,这个演讲视频还比较著名,这个演讲者是Exceptional C翻译 2012-09-08 13:51:10 · 3557 阅读 · 0 评论 -
(2)巩固一下C语言基础知识,谁动手,谁收获。
问题7:编写一个程序,让它有以下功能:从键盘上输入一个五位数,对此整数中的五个数值进行从大到小排序,形成一个新的五位数,输出这个整数。(15分) 问题8:输入年、月、日,输出该日期是该年的第几天。(25分) 问题9:利用数组实现数据的存储。将学生的学号和成绩存储在数组中,利用循环计算出数组中存储学生的平均成绩,找出高于平均分的学生信息并输出。(20分)原创 2011-11-06 18:04:27 · 1933 阅读 · 1 评论 -
C/C++转义字符
转义字符 意义 ASCII码值(十进制) \a 响铃(BEL) 007 \b 退格(BS) 008 \f 换页(FF) 012 \n 换行(LF) 010 \r 回车(CR) 013 \t 水平制表(HT) 009 \v原创 2011-10-21 20:10:04 · 1437 阅读 · 0 评论 -
C语言结构体中位域(位段)的使用
#include #include struct bit{char i1:1;char i2:1;char i3:1;char i4:1;char i5:1;char i6:1;char i7:1;char i8:1;};int main(){ char x=1; struct bit *pb=(struc原创 2011-10-20 21:23:31 · 1691 阅读 · 0 评论 -
bitmap处理海量数据及其实现
【什么是Bit-map】 所谓的Bit-map就是用一个bit位来标记某个元素对应的Value, 而Key即是该元素。由于采用了Bit为单位来存储数据,因此在存储空间方面,可以大大节省。 如果说了这么多还没明白什么是Bit-map,那么我们来看一个具体的例子,假设我们要对0-7内的5个元素(4,7,2,5,3)排序(这里假设这些元素没有重复)。那么我们就可以采用Bit-map的方法来达到排原创 2011-10-20 16:05:32 · 2218 阅读 · 0 评论 -
hash处理海量数据及其实现
【什么是Hash】 Hash,一般翻译做“散列”,也有直接音译为“哈希”的,就是把任意长度的输入(又叫做预映射, pre-image),通过散列算法,变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,而不可能从散列值来唯一的确定输入值。简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数原创 2011-10-20 16:10:23 · 2095 阅读 · 0 评论 -
C/C++(字符串处理)字符指针、字符数组用法大总结
字符指针变量和字符数组都可以处理字符、字符串,但是两者却有着本质的区别。今天用到就把所有的总结一下,以供大家参考!1、字符数组初始化及赋值char c_a[] = {"songjinshi"};//正确char c_a[] = {'s','o'};//正确char c_a[] = "songjinshi";//正确char c_a[11];c_a = "原创 2011-10-19 20:53:19 · 7395 阅读 · 0 评论 -
C++输入函数的用法和区别
1、cin>> 用法1:最基本,也是最常用的用法,输入一个数字:#include using namespace std;main (){int a,b;cin>>a>>b;cout}输入:2[回车]3[回车]输出:5原创 2011-10-18 20:10:48 · 4457 阅读 · 0 评论 -
不用中间变量实现strlen函数
int strlen(const char*s){if(*s==0)return 0;elsereturn strlen(s+1)+1;}原创 2011-10-18 21:10:17 · 3082 阅读 · 5 评论 -
网络通信时字节序转换原理与网络字节序、大端和小端模式
引言:在进行网络通信时是否需要进行字节序转换? 相同字节序的平台在进行网络通信时可以不进行字节序转换,但是跨平台进行网络数据通信时必须进行字节序转换。原因如下:网络协议规定接收到得第一个字节是高字节,存放到低地址,所以发送时会首先去低地址取数据的高字节。小端模式的多字节数原创 2011-09-18 20:19:15 · 8867 阅读 · 2 评论 -
(4)巩固一下C语言基础知识,谁动手,谁收获。
问题13: 编程解决如下问题:鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一。百钱买百鸡, 问鸡翁,鸡母,鸡雏各几何?(20分)问题14:编程实现:有二维数组a[3][3]={{1.3,2.7,3.6},{2,3,4.7},{3,4,1.27}},将数组a的每一行元素均除以该行上绝对值最大的元素,按行输出新数组。(20分)问题15: 编程:设原创 2011-11-06 18:35:38 · 1573 阅读 · 0 评论 -
(7)巩固一下C语言基础知识,谁动手,谁收获。
问题23: 编程解决如下问题(50 分) 。 有一个数学等式:ABCD*E= DCBA,式中的一个字母代表一位数字,试找出所有符合上述 要求的乘积式并打印输出。 问题24:编程解决如下问题(50 分) 。 请在整数 n=92081346718538 中删除 10个数字, 使得余下的数字按原次序组成的新数最 大。要求如下: (1)整数 n和删除数字的原创 2011-11-06 21:50:53 · 2052 阅读 · 4 评论 -
工作20天之感悟(嵌入式开发)
不知不觉已经来到上海快一个月了,工作也差不多20天了,从实际工作中发现了很多问题,也学到了很多东西,明白了理论学习和实际工作的最大差别:思想停留和实际动手。 以前在学校的时候感觉自己还挺不错的,没事啃啃书,学习学习理论性的语法,有时还敲一些简短的代码。没有任务驱动,慢慢的就停留在哪里,无法前进了,并且自我感觉良好,我想这就是在学校学习理论的结果。现在工作了,在工作中最重要的不是你的能原创 2011-12-15 18:01:55 · 2068 阅读 · 2 评论 -
(5)巩固一下C语言基础知识,谁动手,谁收获。
问题18:编写一个函数InverseByWord(char*sentence),实现一个英文句子按单词逆序存放的功能,并给出测试程序。(50分)如:This is aninteresting programme .逆序后变为:. programme interesting an isThis问题19:编程完成数据加密。数据是五位的整数,加密规则为:每位数字都加上原创 2011-11-06 18:51:07 · 1639 阅读 · 2 评论 -
(1)巩固一下C语言基础知识,谁动手,谁收获。
参加的一个比赛里面的基础性的C语言小程序编写,大家可以练习一下,巩固一下基础知识。不要拷贝别人的代码,自己亲自动手写一下,别管是否简单。 问题1: 编程解决如下数学问题:有12升水,怎样利用一个8升和一个5升的容器将水分为两个6升?要求以如下格式打印出分水步骤。(20分) a12 b8 c5 12 0 0 * * *( “*”表示当前状态原创 2011-11-04 18:12:06 · 2669 阅读 · 4 评论 -
(6)巩固一下C语言基础知识,谁动手,谁收获。
问题21:有一个3×4的矩阵,要求编写程序找出每一行中最大值并与第一列交换。(20分)问题22:用指针实现:把一个整数插入到由小到大排列的数列中,插入后仍然保持由小到大的顺序。(20分)问题21实现代码:/* author:宋金时 *//* date:2011/11/04 */#include "Stdio.h"#include "Conio.h"原创 2011-11-06 18:54:34 · 1901 阅读 · 5 评论 -
(3)巩固一下C语言基础知识,谁动手,谁收获。
问题12:编写一个简单的通讯录管理系统。通讯录包括:姓名、通讯地址、邮编、联系电话,现编写一个通讯录管理系统,可以对通讯录进行输入、显示、查找,通讯录保存到一个文件中。(50分)(提示:可能用到以下库函数:malloc(),功能:分配size字节的存储区,用法:(类型 *)malloc(size *sizeof(你要定义的类型));包含于库中feof(),功原创 2011-11-06 18:12:05 · 1278 阅读 · 0 评论 -
extern作用详解
extern 作用1:声明外部变量现代编译器一般采用按文件编译的方式,因此在编译时,各个文件中定义的全局变量是互相透明的,也就是说,在编译时,全局变量的可见域限制在文件内部。例1:创建一个工程,里面含有A.cpp和B.cpp两个简单的C++源文件://A.原创 2011-09-17 16:45:02 · 32002 阅读 · 13 评论