c语言

作者: gcrisis | 来源:发表于2019-03-19 23:04 被阅读0次

类型是内存中空间大小的别名;

变量是内存中一段连续空间的别名;

auto使用栈空间,局部变量;

register使用cpu寄存器,不一定分配成功,局部变量;

static使用静态区,static可以是局部的也可以本文件全局的。static作用于函数可以限制该函数只在本文件中有效。

if语句

如果是布尔类型,if条件不需要比较,直接使用。

如果与常量进行相等比较,将常量放在==左边,好处是如果由于疏忽少了一个=编译器会报错,否则这个错误很难发现。

float类型相等比较一般采用精度范围比较,这是由于float设计上就不是很精确。

do{}while(0)很有用,如下图所示。这样可以避免多个返回,是的程序调理,可读性强、易于维护。

c语言

函数中资源的分配一般都位于函数开始处,资源的回收位于函数的结尾处,易于维护,防止内存泄漏。

goto弃用

没有void变量,有void指针变量,void指针变量可以接受任意类型的指针变量,反过来需要强制转换。

extern “C” {}括号内按照标准c编译。gcc编译这段会报错,g++可以正常编译通过。

sizeof不是函数,其在编译阶段已经处理好,不是在运行时处理的,加括号只是习惯做法,对于变量可以不加括号,但是对于类型需要加。

const

const只在编译时有效,运行时无效。可以通过指针改变const类型的变量。const修饰的数组是不可被改变的,现代编译器编译后如果出现这种问题会crash。

const修饰指针,const出现在*左边,指针指向的数据不可变,const出现在*右边,指针本身不可变。即左数右指。

const修饰函数参数,表示函数体内不能改变参数的值。

const修饰函数返回值,表示返回值不能被修改。多用于返回指针的情况。

volatile

可理解为编译器警告指示字,告诉编译器必须去内存取变量,而不要作优化。主要用于修饰被多进程线程访问的变量。在嵌入式中中断可能会改变一个变量的值,这个变量必须用volatile修饰。

结构体

空结构体大小不同编译器结果不同,有0也有1,1比较合理。

可以用结构体定义柔性数组。结构体中数组没有大小,只占位不分配空间。之后可以使用malloc分配空间。

c语言

union分配最大数据类型的空间,受系统大小端影响,可以利用这个特性判断系统的大小端。

方法:在union中定义一个int和char,给int赋值(小于255),判断char是不是也是这个值。

enum

真正的常量,在前一个值上加一,有类型可调试。定义常量尽量用enum。

typedef

给已存在的类型起别名。注意与define区别。

相关文章

  • C++简答题

    一、简答题 1、C语言与C++语言的区别? 答: C语言是面向过程语言,C++是面向对象语言(OOP) C语言...

  • C语言快速入门 - Hello World 详解

    目录 C语言快速入门 C语言快速入门 - Hello World 详解 C语言快速入门 - 变量 C语言快速入门 ...

  • C语言快速入门 - 简单运算符

    目录 C语言快速入门 C语言快速入门 - Hello World 详解 C语言快速入门 - 变量 C语言快速入门 ...

  • C语言快速入门 - 控制语句

    目录 C语言快速入门 C语言快速入门 - Hello World 详解 C语言快速入门 - 变量 C语言快速入门 ...

  • C语言快速入门 - 变量

    目录 C语言快速入门 C语言快速入门 - Hello World 详解 C语言快速入门 - 变量 C语言快速入门 ...

  • C语言快速入门

    目录 C语言快速入门 C语言快速入门 - Hello World 详解 C语言快速入门 - 变量 C语言快速入门 ...

  • C语言如何使用随机数?

    C语言如何使用随机数? 功能介绍推送一些C语言方面的知识,提供C语言/C++语言资料,讨论和学习C语言/C++编程...

  • C++语言学习之面向对象

    1.C语言与C++语言的区别 C++面向对象 C 面向过程 函数+结构体 C++可以运行调用C语言 反之 C语言无...

  • C小白

    一 C语言概述(what)①C语言的特点C语言是一种底层语言,小型语言,包容性语言②C语言的优点高效。可移植。功...

  • 慕课网-c++教程起航篇-学习笔记

    c++教程起航篇 C语言是C++的子集。 c语言是面向过程的语言,而C++是面向过程的语言又是面向对象的语言。 C...

网友评论

      本文标题:c语言

      本文链接:https://www.haomeiwen.com/subject/ucnomqtx.html