![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C
shouzhoudd
这个作者很懒,什么都没留下…
展开
-
L19#pragma
L18: #pragma#pragma是编译器指示字,用于指示编译器完成一些特定的工作#pragma所定义的很多指示字是编译器和操作系统特有的#pragma在不同的编译器之间是不可移植的#预处指令理器将忽略它不认识的#pragma两个不同的编译器可能以不同的方式解释同一条#pragma指令一般用法: #pragma parameter不同parameter参数语法和意义各不相同 #原创 2015-06-03 22:13:03 · 430 阅读 · 0 评论 -
C语言基础(L15-L16)
L15 :编译过程预处理处理注释,以空格代替将所有#define删除,并且展开所有的宏定义处理 #if #ifdef等处理#include,展开被包含的文件保留编译器需要使用的#pragma指令 预处理命令: gcc -E file.c -o hello.i编译语法分析,语义分析,产生汇编代码 gcc -S file.c -o hello.s链接静态链接 在编译期完成动态链原创 2015-05-25 18:24:12 · 464 阅读 · 0 评论 -
L18#error和#line
L18: #ERROR 和#LINE#error 用于生产一个编译错误消息,并停止编译用法 #error messagemessage 不需要用双引号包围#warning用于生产编译警告,不停止编译 #include <stdio.h> #define CONST_NAME1 "CONST_NAME1" #define CONST_NAME2 "原创 2015-05-26 14:28:10 · 325 阅读 · 0 评论 -
C语言基础(L17)条件编译
条件编译,可控程序流程#include #ifdef DEBUG #define LOG(s) printf("[%s:%d] %s\n", __FILE__, __LINE__, s)#else #define LOG(s) NULL#endif#ifdef HIGHvoid f(){ printf("This is the high原创 2015-05-25 18:28:10 · 344 阅读 · 0 评论 -
C语言基础(L8 -L14)
L8 :注释简单直接,规范有用L9 :接续符和转义符1.接续符\ :表示一行没有结束,下一行继续 适用范围: 宏代码块定义#define SWAP(a,b) \{ \ int temp = a; \ a = b; \ b = temp; \}2.转义符L10 :单引号 双引号#include <stdio.h>原创 2015-05-23 20:08:41 · 539 阅读 · 0 评论 -
堆和栈的区别(转)
一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其 操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回 收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。 3、全局区(静转载 2015-05-23 18:30:29 · 326 阅读 · 0 评论 -
C语言基础(L6-L7)
L6:struct AND unionstruct1.空结构体的大小?用gcc编译链接后 空结构体占用0个字节 ,出来一个问题 如果定义两个空结构体 则两个变量占用相同的地址空间。 如果用g++编译链接 执行 ->占用1个字节,两个变量占用不同的地址空间。 2.柔性数组:数组大小待定的数组(产生斐波那契数列)#include <stdio.h>#include <malloc.h>typede原创 2015-05-23 18:17:27 · 588 阅读 · 0 评论 -
C语言基础(L1-L5)
变量char =1Byteshort =2Byteint =4Byteauto static registerauto 局部变量的默认属性 存储于程序的栈中static 修饰的局部变量存储在程序静态区(全局区) static修饰的全局变量作用域只是声明的文件中 static修饰的函数作用域只是声明的文件中 3.register 关键字指明将变量存储于寄存器中 register只原创 2015-05-22 15:58:44 · 701 阅读 · 0 评论 -
L21指针基础
指针本质指针本质就是变量指针需要占用一定的内存空间指针用于保存内存地址的值不同类型的指针占用的内存空间相同吗?–>相同 示例:“““.c #include <stdio.h> int main() { int i; int* pI; char* pC; float* pF; pI = &原创 2015-06-03 22:14:09 · 381 阅读 · 0 评论 -
L20#和##使用
L20#和##使用1. # #include <stdio.h> #define CALL(f, p) (printf("Call function %s\n", #f), f(p)) int square(int n) { return n * n; } int f(int x) { return x;原创 2015-06-03 22:13:41 · 551 阅读 · 0 评论 -
L24c语言中的字符串
字符串基本概念1.概念上讲,C语言中没有字符串数据类型 2. C语言中使用字符数组来模拟字符串 3. C语言中的字符串是以’\0’结束的字符数组 4. C语言中的字符串可以分配于栈空间,堆空间或者只读存储区#include <stdio.h>#include <malloc.h>int main(){ char s1[] = {'H', 'e', 'l', 'l', 'o'}; /原创 2015-06-03 22:14:30 · 600 阅读 · 0 评论 -
L23数组指针分析
L23数组指针分析指针是一种特殊的变量,与整数的运算规则为:p+n <-->(unsigned int)p +n*sizeof(*p)指针的比较规则: 1. 大小比较需要指针指向同一个数组 2. ==和 != 不需要 #include a 和&a的区别a为数组是数组元素的地址&a为整个数组的地址a和&a的意义不同,其区别于指针运算 a+1 –> (unsigned int)a原创 2015-06-03 22:13:38 · 349 阅读 · 0 评论 -
L22数组基础
数组本质数组是相同类型的变量的有序集合数组名代表数组首元素的地址int a[5]={0};,a和&a的值相同,但是含义有区别a代表数组首元素地址;&a表示数组的地址数组名可以看做一个常量指针在表达式中数组名只能作为右值使用只有在下列场合中数组名不能看做常量指针 数组名作为sizeof操作符的参数数组名作为&运算符的参数当给一个指定大小的数组赋一个初始值时,剩下的别的未被初始化的数原创 2015-06-03 22:13:12 · 374 阅读 · 0 评论 -
SUBLIME 3 支持中文设置
SUBLIME 3 支持中文安装Sublime Package Control非常简单。1、打开Preferences菜单,并选择 Browse Packages…2、系统会打开Sublime Text 3的Packages文件夹,回到上一级菜单,然后打开Installed Packages文件夹3、下载并将下载的Package Control.sublime-package拷贝到Installed转载 2017-06-05 11:57:12 · 522 阅读 · 0 评论