C概念

作者: 追風 | 来源:发表于2016-12-24 11:22 被阅读0次

概念

  • 栈:局部变量,程序运行完自动释放
  • 堆:只能手动申请和释放,如malloc申请的空间在堆上,malloc()和free()要成对出现,申请的空间要及时释放,防止出现堆空间不足现象。
  • 段错误:出现的原因如下
    指针:常量指针/NULL/野指针
    数组:数组越界访问,访问到非法区或修改了其他变量
    其他:内存不足/双释放/内存泄漏
  • 堆栈:先进后出,后进先出
  • 队列:先进先出
  • 宏定义:取消宏#undef
#if 0
#elif 0  
#else 1  //执行
#endif
  • 对hello.c文件编译过程
    gcc -E hello.c -o hello.i //生成文件去掉注释代替宏
    gcc -S hello.i -o hello.s //生成汇编语言
    gcc -c hello.s -o hello.o //生成01机器代码
    gcc -o hello.o -o hello //目标文件,可执行文件
    一般简化:
    gcc hello.c -o hello
  • 文件系统
    文件信息:索引结点(index)
    文件操作:文件描述符(fd)
    早期的Unix系统:1024(fd最大值)
    Linux系统: 65535(fd最大值)

  • 文件的定义: 一组相关数组的有序集合,成为文件
    文件打开和关闭
    a.打开:fopen(文件名,属性);
    b.关闭:fclose(文件指针);

  • 文件指针
    a.文件指针结构体:FILE,包含了文件的基本信息。
    b. 定义文件指针:FILE *指针变量名

  • 文件的操作
    a. fgetc()/fputc() :字符串写读函数
    b. fgets()/fputs() :字符串写读函数
    c. fscanf()/fprintf() :格式化读写函数
    d. fread(0/fwrite() :块读写函数,C89标准中有BUG

  • 多文件包含
    a.标准库的头文件:用<>括起来,如#include<stdio.h>
    b.自定义头文件:一般用" "括起来,为了区分库的头文件,编译器的查找路径为当前路径,可以包含:函数声明,库的头文件,自定义的其他头文件,结构体宏定义,不允许定义变量,若该头文件在项目中的多个文件中包含则会导致重复定义

  • 全局变量,如在1.c文件中定义的全局变量,若在其他文件中使用,在其他文件中使用extern声明该全局变量,将1.c文件包含到文件中

  • 防止头文件重复包含添加下面

#ifndef HEAD_H  //若HEAD_H(自定义)未定义则编译以下内容
#define HEAD_H //宏定义HEAD_H
头文件
函数申明
结构体
等等
#endif  //结束,防止头文件重复包含

小记

1,写代码时if,for等后面只有一条语句也记得写{ },不要省略,养成一种习惯。
2,今天就因为if忘记{},导致编译没错,逻辑没错,就是得不到预期的结果,找了好久才找到问题。

相关文章

  • C概念

    概念 栈:局部变量,程序运行完自动释放 堆:只能手动申请和释放,如malloc申请的空间在堆上,malloc()和...

  • C#概念

    #学习目标 1、 掌握学习编程的方法 2、 了解C#语言的由来、特点、开发前景 3、 理解.NET平台、会安装VS...

  • c#概念

    VS下载地址:https://share.weiyun.com/5KHApOi xmind8下载地址:https:...

  • C基础概念

    一,C之父——丹尼斯·里奇 二,C程序结构分析 三,C数据类型——基本类型 1,变量定义赋值举例 整型:int n...

  • 安卓NDK开发学习笔记

    一、NDK基础概念 1.NDK概念 2.使用场景 代码保护 调用第三方c/c++开源库 c++ 便于移植。用c/c...

  • C#基础之002-基础概念001

    C#关键概念 C# 组织结构的关键概念是程序 (program)、命名空间 (namespace)、类型 (typ...

  • 【20200421】每日好文推荐 第 11 期 | 概念解读&用

    【概念解读】从产品角度聊聊To C/To B/To G各是什么? 文章对 To C、To B、To G 三个概念进...

  • 【原创纯手打】K8S简明讲义(一)

    ======================基本概念========================== 【1】c...

  • 你需要了解的B端和C端的区别

    本文主要分享关于B端产品和C端产品概念、特点、业务调研、运营和建设流程的区别。 一、概念 C端产品:也叫2C(to...

  • 05 NDK-C++基础(一)

    1 C++对C的加强 1.1 namespace命名空间 1.1.1 C++命名空间基本概念 在C/C++中,变量...

网友评论

      本文标题:C概念

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