- 博客(23)
- 资源 (21)
- 收藏
- 关注
原创 C语言实现关机
许多学习刚学习C语言的朋友对感觉C语言只是printf("hello world\n"); 或者数学问题,总想做个关机等的小程序,其实,C语言实现关机是很容易的,下面是代码 #include int main(void) { system("shutdown -s -t 0"); return 0;
2013-02-28 19:46:27 24167 3
原创 C语言15大头文件介绍
C89(标准C) 有15个头文件 ,这些头文件包含了标准库的函数的声明 1. assert.h /* assert.h assert macro Copyright (c) 1987, 1991 by Borland International All Rights Reserved.*/#if !defined( __DEFS_H
2013-02-28 16:42:44 4464
原创 类型的定义与申明
变量的声明有两种情况: (1) 一种是需要建立存储空间的(定义、声明)。例如:int a在声明的时候就已经建立了存储空间。 (2) 另一种是不需要建立存储空间的(声明)。例如:extern int a其中变量a是在别的文件中定义的。 前者是"定义性声明(defining declaration)"或者称为"定义(definition)",而后者是"引用性声明(ref
2013-02-28 11:28:57 2325
原创 C语言32大关键字
所谓关键字也叫保留字,它是标识符的一种,标准规定它是编译器默认的某些类型,因此用户不可用它的一样的标识符去表示其他的东西。 标准C有32个关键字: 一 数据类型关键字 12 个: 1 . char 2 . short 3 . int 4 . long 5. enum 6. float 7. double 8. s
2013-02-28 11:00:41 1060
转载 sockaddr 和 sockaddr_in的区别
初学者很容易对二者有困惑的感觉,下面来讲一下二者的区别。sockaddr是在头文件 /usr/include/bits/socket.h 中定义的,如下: [cpp] view plaincopyprint?struct sockaddr { __SOCKADDR_COMMON (sa_); /* Common data: address
2013-02-26 17:45:48 942
转载 Vim 简明教程
vim的学习曲线相当的大(参看各种文本编辑器的学习曲线),所以,如果你一开始看到的是一大堆VIM的命令分类,你一定会对这个编辑器失去兴趣的。下面的文章翻译自《Learn Vim Progressively》,我觉得这是给新手最好的VIM的升级教程了,没有列举所有的命令,只是列举了那些最有用的命令。非常不错。——————————正文开始——————————你想以最快的速度学习人类
2013-02-26 11:35:34 983
转载 字符串常量到底存放在哪个存储区
字符串常量,放在哪个存储区呢?是“自动存储区”还是“静态存储区”中?比如:char *pstr="hello world!";这里,"hello world!"是一个字符串常量,pstr是在栈中的变量。我想问,字符串常量,在哪个内存区域分配空间呢?好像应该不是在“栈区“分配空间吧!!!一、预备知识—程序的内存分配一个由C/C++编译的程序占用的内
2013-02-23 16:57:57 54924 26
原创 深入 char * ,char ** ,char a[ ] ,char *a[] 内核
C语言中由于指针的灵活性,导致指针能代替数组使用,或者混合使用,这些导致了许多指针和数组的迷惑,因此,刻意再次深入探究了指针和数组这玩意儿,其他类型的数组比较简单,容易混淆的是字符数组和字符指针这两个。。。下面就开始剖析一下这两位的恩怨情仇。。。 1 数组的本质 数组是多个元素的集合,在内存中分布在地址相连的单元中,所以可以通过其下标访问不同单元的元素。。 2 指针。 指针
2013-02-23 15:34:13 198134 86
原创 C 语言四大存储类型。。。
1。 extern, 从其英文意思外部的就能看出,这个表示引用一个外部变量。。 C语言程序编译时是以每个.c 文件为单位的,最后再把它们链接在一起,所以每个文件中的全局变量对于其他文件是可见的,所以可以在一个文件中引用其他文件中的变量和函数。 extern 关键字就是用来表示引用别的单元的变量。。。 比如。。file1.c 中
2013-02-22 18:45:43 2905
转载 C关键字之 volatile
就象大家更熟悉的const一样,volatile是一个类型修饰符(type specifier)。它是被设计用来修饰被不同线程访问和修改的变量。如果没有volatile,基本上会导致这样的结果:要么无法编写多线程程序,要么编译器失去大量优化的机会。volatile的作用volatile的作用: 作为指令关键字,确保本条指令不会因编译器的优化而省略,且
2013-02-21 16:09:32 1069
原创 C 语言main 函数终极探秘
所有的C程序必须定义一个称之为main的外部函数,这个函数是程序的入口,也就是当程序启动时所执行的第一个函数,当这个函数返回时,程序也将终止,并且这个函数的返回值被看成是程序成功或失败的标志,如果在到达main函数体的末尾时没有遇到返回语句 ,它就被看看成是执行了return 0; 语句。 C的设计原则是把函数作为程序的构成模块。main()函数称之为主函数,一个C程序总是从ma
2013-02-13 11:56:31 9287 1
转载 C/C++程序编译运行生成过程分析
C/C++程序编译步骤 如何生成可执行文件 **************************************************************************篇一****************************************************************************************
2013-02-13 10:23:29 5999
转载 VC++中的C运行时库浅析
1.概论 运行时库是程序在运行时所需要的库文件,通常运行时库是以LIB或DLL形式提供的。C运行时库诞生于20世纪70年代,当时的程序世界还很单纯,应用程序都是单线程的,多任务或多线程机制在此时还属于新观念。所以这个时期的C运行时库都是单线程的。 随着操作系统多线程技术的发展,最初的C运行时库无法满足程序的需求,出现了严重的问题。C运行时库使用了多个全局变量(例如errno)和
2013-02-13 10:13:03 2353
转载 C语言内存管理分析
欢迎进入内存这片雷区。伟大的Bill Gates 曾经失言:640K ought to be enough for everybody— Bill Gates 1981程序员们经常编写内存管理程序,往往提心吊胆。如果不想触雷,唯一的解决办法就是发现所有潜伏的地雷并且排除它们,躲是躲不了的。本章的内容比一般教科书的要深入得多,读者需细心阅读,做到真正地通晓内存管理。7
2013-02-11 19:33:34 938
原创 stdafx.h 头文件概述
stdafx,的英文全称为:Standard Application Framework Extensions所谓头文件预编译,就是把一个工程(Project)中使用的一些MFC标准头文件(如Windows.H、Afxwin.H)预先编译,以后该工程编译时,不再编译这部分头文件,仅仅使用预编译的结果。这样可以加快编译速度,节省时间。预编译头文件通过编译stdafx.cpp生成,以工
2013-02-11 19:00:30 1489
转载 C运行时库浅析
运行时和运行时库 (摘录)Runtime: When a program is running, or executing, it is said to be in runtime. The term is mostly used by software developers to specify when errors in a program occur. A "runti
2013-02-11 18:00:31 1061
转载 C运行时库
1)运行时库就是 C run-time library,是 C 而非 C++ 语言世界的概念:取这个名字就是因为你的 C 程序运行时需要这些库中的函数.2)C 语言是所谓的“小内核”语言,就其语言本身来说很小(不多的关键字,程序流程控制,数据类型等);所以,C 语言内核开发出来之后,Dennis Ritchie 和 Brian Kernighan 就用 C 本身重写了 90% 以上的 UNIX
2013-02-11 17:58:52 633
转载 C99与C89对比
GCC 支持C99,通过 --std = c99命令行参数开启。 例如:gcc --std = c99 test.c 1、增加restrict指针 C99中增加了公适用于指针的restrict类型修饰符,它是初始访问指针所指对象的惟一途径,因此只有借助restrict指针表达式才能访问对象。restrict指针指针主要用做函数变元,或者指向由malloc()函数所分配的内存变量
2013-02-11 17:22:45 1323
转载 C99概述
C99是什么C99是标准ISO/IEC 9899:1999的简称。c99是在c89的基础上发展起来的,增加了基本数据类型,关键字和一些系统函数等。其实在初学阶段C89(ANSI C)和C99的区别是不易察觉的,所以不必太在意这个。C99有一部分是对于大字符集的优化(很多资料上写的是ANSI标准化),还加入了一些数据库函数,是C89之后的标准,我们用的C是C89标准的,C
2013-02-11 16:37:39 9153
转载 优秀程序员不得不知道的20个位运算技巧
【转载】一提起位运算,人们往往想到它的高效性,无论是嵌入式编程还是优化系统的核心代码,适当的运用位运算总是一种迷人的手段,或者当您求职的时候,在代码中写入适当的位运算也会让您的程序增加一丝亮点,最初当我读《编程之美》求“1的数目”时,我才开始觉得位运算是如此之美,后来读到 《Hacker's Delight》,感慨到Henry S.Warren把位运算运用的如此神出鬼没,很多程序都十分精妙,我
2013-02-10 23:21:51 2613
原创 浅析为什么char类型的范围是 —128~+127
在C语言中, signed char 类型的范围为-128~127,每本教科书上也这么写,但是没有哪一本书上(包括老师)也不会给你为什么是-128~127,这个问题貌似看起来也很简单容易, 以至于不用去思考为什么,不是有一个整型范围的公式吗: -2^(n-1)~2^(n-1)-1 n为整型的内存占用位数,所以int类型32位 那么就是 -(2^31)~2^31 -1 即 -21474
2013-02-07 13:44:29 67223 60
转载 关于WM_CHAR 消息的解读
一直都以为OnChar消息函数 或者 说 WM_CHAR 可以处理所有的按键信息。原来是错误的,WM_CHAR 对应的只是字符而不是按键。其中,字符是指的0-127内的ASCII码。具体的说明参照以下的文章。 http://hi.baidu.com/%BF%AA%D0%C4_%D0%D6%B5%DC/blog/item/170b5273f26e7a1f8601b0c1.html
2013-02-06 12:50:38 21482 2
转载 float 精度探究
最近一段时间看到版上关于C++里浮点变量精度的讨论比较多,那么我就给对这个问题有疑惑的人详细的讲解一下intel的处理器上是如何处理浮点数的。为了能更方便的讲解,我在这里只以float型为例,从存储结构和算法上来讲,double和float是一样的,不一样的地方仅仅是float是32位的,double是64位的,所以dou
2013-02-04 09:55:44 1359
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人