`
lmyessential
  • 浏览: 31267 次
  • 性别: Icon_minigender_1
  • 来自: 福州
社区版块
存档分类
最新评论

C笔记(Programming In C)

阅读更多

1. 一个函数永远无法修改它的参数的值,它只能修改这些参数的拷贝。
2.printf("a%%b=%i\n",a%b); %在格式化字符串中有特殊的意义,要打出%,需在前面加一个%
3. 转义字符:   \a  警铃
4.  int i;char c;
i=c-'0'; 此时若c=‘5’,则i=5
5.我们需要时刻牢记,除非用它来指向某个东西,否则C语言的指针的值是没有意义的。
6.(*dataptr).day=21
结构成员操作符.与* 指针运算符有更高的优先极
7.通常情况下,使用下标变量访问数组元素的过程比使用指针访问花费更多的时间。
8.一个以0开头的整数常量表示的是八进制数
9.if(number &1)
可判奇偶,奇为真,偶为假
(注,在使用一类补数表示数字的机器里这种方法无法应用于负数。)
10.异或运算符有一个有趣的特性,即任何一个数于自己异或后值为0.历史上,汇编程序常用这一个技巧快速的将一个值设置为0或比较两个值看它们是否相等。在C语言里,我们不推荐使用这种方法,因为这样做
即不节省时间,并且还可能导致程序晦涩难懂。
11.异或还有一个有趣的应用是,它可以在不用额外存储单元的情况下高效地交换两个数值
i1^=i2;
i2^=i1;
i1^=i2;
12.   number^0=number
13.德摩根律:
~(~a&~b)=a|b;
~(~a |~b)=a&b;
14.左移一位相当于乘于2。实际上,一些C语言编译器自动地用左移合适的位数以产生和乘以2的某次幂相同的效果。因为在大多数计算机上,移位操作比乘法操作要快的多。
15.对有符号数而言,右移对不同计算机有时会产生不同的结果,因此因注意右移的使用。
16.#include<stdio.h>
#include "stdio.h>
两者的区别在于,前者是在特定的系统目录中寻找该文件,而后者则是先在源文件所在目录寻找,而后到特定的系统目录中寻找(在linux下通常是/usr/include/)
17.头文件,在编程实践中,我们通常宏的定义,结构类型的定义,函数原型的声明,以及全局变量的声明都放置到头文件中。
18.在程序中使用枚举变量的时候,我们应当把枚举类型看作一种新的数据类型,而不要将其看作是整型类型,坚持使用符号而不是整数将有好处。
19.使用typedef语句为某个数据类型起一个新的名字的精确步骤如下:
a. 写出声明该数据类型变量的语句。
b. 将该语句中的变量名用新的类型名代替。
C. 在最前面加上typedef语句,这样就原来的类型定义了新的类型名
20 类型转换规则:
long double --> double--> float-->
Bool,char ,short int, bit field, enum --> int -->long long int --> long int
21.The Standard C Library
头文件为<stdlib.h>
以下为其中的一些通用函数:
int abs(n)           返回int类型参数n的绝对值
void exit(n)         终止程序的执行
char *getenv(s)      返回参数s对应的环境变量
long int labs(l) ;  long long int llas(ll)      返回long int 或 long long int  的绝对值。
void qsort(arr,n,size,comp_fn)
22.指针可以读写内存中特定字节的内容。
#define  NETWORK_CHIP_STATUS ((BYTE *)0X8000)
p_byhardware=NETWORK_CHIP_STATUS
byStatus=*p_byhardware

23.匈牙利变量命名方法
  byError----- 字节型变量(可能包含一个错误代码)
  iTank-------整型变量(可能包含油罐的数据)
  p_iTank-----整型指针
  a_chPrint---字节型数组(大多数情况,信息将被打印出来)
  fDone-------一个标记(表明一个过程是否完成)

分享到:
评论

相关推荐

    《The C++ Programming Language》for 达内科技 c++ 课件 及 源码笔记[完美]

    Welcome to the OpenLab of Tarena Technologies Inc. Cananda. #include #include using namespace std; int main( ) { ofstream fout("test.txt"); int k; char buf[50]; fout ; cout ; cin &gt;&gt; k; fout ;...

    STM32通过I2C在线升级(En)1

    1. 在线升级(In-Application Programming,IAP)概念:在线升级是指在Flash-memory-based系统中更新固件的能力,一旦系统安装在最终产品中。这是大多数Flash-memory-based系统的关键要求。 2. STM32F10x微控制器的...

    BOOTLOADER N32G45x_FR_WB系列芯片IAP升级应用笔记_V1.0 XCOM 串口IAP升级C代码

    3. **IAP(In-Application Programming)**:这是一种在应用程序运行过程中更新固件的技术,允许用户在不脱离系统运行的情况下更新MCU的闪存中的程序。 4. **XCOM**:可能是一个通信工具或者编程软件,用于通过串口...

    Introduction to Programming with Mathematica.pdf

    需要注意的是,Mathematica、MathLink和MathSource是Wolfram Research, Inc.的注册商标,而其他商标则属于各自所有者。Mathematica与Mathematica Policy Research, Inc.或MathTech, Inc.无关联。Wolfram Research...

    ATmega16学习笔记ICCAVR

    通过ISP(In-System Programming)或JTAG(Joint Test Action Group)接口,可以直接在目标板上烧录程序。Proteus仿真则可以在软件层面验证代码的正确性,减少硬件实验的需求。 6. **AVR汇编语言与C语言**:ATmega...

    AVR学习笔记实验.rar

    学习笔记实验部分可能包含了一系列实际操作,如使用示波器观察信号、通过ISP(In-System Programming)编程器烧录程序、设计简单的控制电路等,这些都是巩固理论知识和提升动手能力的好方法。 10. **应用实例** ...

    2023-04-06-项目笔记 - 第六十五阶段 - 4.4.2.63全局变量的作用域-63 -2024.03.07

    - 《C Programming Language》 - 《Effective C: 55 Specific Ways to Improve Your C Programs and Designs》 以上资料可以帮助开发者更全面地了解全局变量的相关知识,从而更好地掌握和应用这些知识。

    HJ-2G AVR开发板详细学习笔记

    3. **编程接口**:如ISP(In-System Programming)接口,用于通过编程器或USB转UART模块下载程序到MCU。 4. **LED指示灯**:用于显示状态和测试输出。 5. **按钮和开关**:用户输入,如复位按钮和控制开关。 6. **...

    STC89C52RC编程文档

    - 支持ISP (In-System Programming) 和 IAP (In-Application Programming) 功能,可以在系统内进行编程和修改; - 具备两个数据指针,增强数据访问能力; - 集成看门狗定时器,提高系统的稳定性; - 四个8位并行...

    ICCAVR学习笔记 程序 电路 编程

    4. 烧录与运行:将编译好的程序通过ISP(In-System Programming)或JTAG等方式烧录到AVR芯片,然后在实际硬件上运行测试,观察效果。 总结,学习ICCAVR不仅是掌握编程语言,更是理解硬件原理和电路设计的过程。通过...

    C8051F2xx中文数据手册

    "ISP"(In-System Programming)意味着该微控制器支持在系统编程,用户无需将芯片从电路板上移除即可更新或修改其内部的FLASH存储器。这种特性极大地简化了产品的开发和维护过程,降低了成本,并且方便了固件的升级...

    linux 进程控制阅读笔记

    为了更好地理解这些概念,你可以参考《Advanced Programming in the UNIX Environment》(APUE)等经典书籍,以及man手册页,这些都是学习Linux进程控制的重要资源。同时,实践操作也是不可或缺的一部分,尝试编写...

    STC89C51RC.rar_stc89c51rc_stc89c51rc单片机

    STC89C51RC的中文技术资料通常会包含详细的数据手册、用户指南、应用笔记、开发工具使用说明等内容。PDF文档可能涵盖了单片机的硬件特性、电气特性、引脚功能、编程指南、寄存器配置、示例代码以及常见问题解答等。...

    阿南的ARM入门调试笔记

    本实验介绍如何利用ISP(In-System Programming)功能实现在线编程。 **实验程序和参数设置** 详细介绍了ISP的实现过程,包括编程模式的配置、编程命令的发送等,并通过编程实现了对目标板的在线更新。 **出现的...

    学习《高级Linux环境编程》读书笔记(APUE读书笔记)

    《高级Linux环境编程》或称为APUE(Advanced Programming in the UNIX Environment),是一本由W. Richard Stevens和Stephen A. Rago合著的关于UNIX环境编程的经典书籍。这本书详细介绍了UNIX系统编程的高级特性,...

    Rust语言学习笔记1

    【Rust语言学习笔记1】 Rust是一种系统级编程语言,以其强调安全性、速度和并发性而闻名。在Rust中,类型推断是其一大特点。这意味着在声明变量时,程序员可以选择不显式地指定类型,因为编译器能够根据上下文推断...

    GD32F1_AN006_Programming_Notes_for_Reset_V1.1.pdf

    GD32F1系列和GD32F2系列微控制器都基于这一架构,并且是GigaDevice Semiconductor Inc.(兆易创新)的主力产品。 综合文档还可能涉及一些编程实践,比如如何在软件中正确配置和使用分散加载文件来安排程序的内存...

    Linux网络编程笔记(修订版)

    - [Advanced Programming in the UNIX Environment](https://www.apuebook.com/):经典的UNIX编程书籍,涵盖了网络编程的内容。 - [Linux内核源码]:深入理解网络编程原理的好材料。 通过以上内容的学习和实践,...

    java版中国象棋源码-learning:学习笔记

    C, SQL, Ruby, Algorithms, and so on in a few days or hours. The Amazon advanced search for [ and found 512 such books. Of the top ten, nine are programming books (the other is about bookkeeping). ...

    cometitive-programming-cpp

    【标题】"Competition Programming in C++" 在编程竞赛领域,C++是一种广泛使用的语言,因其高效、灵活性和丰富的库支持而备受青睐。"Competition Programming in C++" 涵盖了使用C++进行竞技编程的核心知识和技巧...

Global site tag (gtag.js) - Google Analytics