精华内容
下载资源
问答
  • 文件指针是指向整个文件的,须在程序中定义说明,只要不重新赋值,文件指针的值是不变的。文件内部的位置指针用以指示文件内部的当前读写位置,每读写一次,该指针均向后移动,它不需在程序中定义说明,而是由系统...
  • c语言学习---函数

    2021-03-06 18:55:59
    标准函数,又称库函数 自定义函数 大多数返回值是告诉你,成功还是失败了 全局变量用的也很少,不要用 就近原则 被定义的函数,必须指定形参类型 二.嵌套调用 setjmp与longjmp 协程 三.递归调用 找公式 四.变量及作用...

    一.函数的声明,定义与调用

    1. 简单
      在这里插入图片描述
    • 双引号优先搜索当前目录下的文件
      在这里插入图片描述
      在这里插入图片描述

    • 点生成是增量编译,重新生成是全部生成
      在这里插入图片描述

    1. 函数的分类和声明
    • 标准函数,又称库函数
    • 自定义函数
      在这里插入图片描述
    • 大多数返回值是告诉你,成功还是失败了
    • 全局变量用的也很少,不要用
    • 就近原则
    • 被定义的函数,必须指定形参类型

    二.嵌套调用

    setjmp与longjmp
    协程

    三.递归调用

    找公式

    四.变量及作用域

    1. 写extern相当于借用,不然int a;,默认为0.也就是int a=3;会报错
      在这里插入图片描述
    • 变量默认初始化为0
      在这里插入图片描述
      在这里插入图片描述
    1. 动态存储方式与静态存储方式
      在这里插入图片描述
      在这里插入图片描述
    展开全文
  • c语言编写单片机技巧

    2009-04-19 12:15:17
    C语言有功能丰富的库函数、运算速度快、编译效率高、有良好的可移植性,而且可以直接实现对系统硬件的控制。C语言是一种结构化程序设计语言,它支持当前程序设计中广泛采用的由顶向下结构化程序设计技术。此外,...
  • C语言中的标准库中所用的标准输出函数,默认的输出设备是显示器,要实现串口或LCD的输出,必须重新定义标准库函数里与输出函数相关的函数。例如:printf输出到串口,需要将fputc里面的输出指向串口(重定向),实现代码...

    C语言中的标准库中所用的标准输出函数,默认的输出设备是显示器,要实现串口或LCD的输出,必须重新定义标准库函数里与输出函数相关的函数。例如:printf输出到串口,需要将fputc里面的输出指向串口(重定向),实现代码如下:

    #ifdef __GNUC__
      /* With GCC/RAISONANCE, small printf (option LD Linker->Libraries->Small printf
         set to 'Yes') calls __io_putchar() */
      #define PUTCHAR_PROTOTYPE int __io_putchar(int ch)
    #else
      #define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)
    #endif /* __GNUC__ */
    
    
    /**
      * @brief  Retargets the C library printf function to the USART.
      * @param  None
      * @retval None
      */
    PUTCHAR_PROTOTYPE
    {
      /* Place your implementation of fputc here */
      /* e.g. write a character to the EVAL_COM1 and Loop until the end of transmission */
      HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1, 0xFFFF);
      
      return ch;
    }

     

    展开全文
  • C语言的科学和艺术.pdf

    热门讨论 2012-01-19 14:09:05
    C语言的科学和艺术》采用了库函数的方法,强调抽象的原则,详细阐述了库和模块化开发。此外,《C语言的科学和艺术》还利用大量实例讲述解决问题的全过程,对开发过程中常见的错误也给出了解决和避免的方法。...
  • C语言中的标准库中所用的标准输出函数,默认的输出设备是显示器,要实现串口或LCD的输出,必须重新定义标准库函数里与输出函数相关的函数。例如:printf输出到串口,需要将fputc里面的输出指向串口(重定向),方法...

            由于在日常使用中经常碰到要使用printf的时候,每次都要去上网翻查一下,在此做记录方便查找

     

            C语言中的标准库中所用的标准输出函数,默认的输出设备是显示器,要实现串口或LCD的输出,必须重新定义标准库函数里与输出函数相关的函数。例如:printf输出到串口,需要将fputc里面的输出指向串口(重定向),方法如下:

            只要自己添加一个int fputc(int ch, FILE *f)函数,能够输出字符就可以了

            使用STM32CubeMX配置串口工程后,想直接使用printf需要加以下代码到usart.c的用户代码段:

    /* USER CODE BEGIN 1 */
    #ifdef __GNUC__
      /* With GCC/RAISONANCE, small printf (option LD Linker->Libraries->Small printf
         set to 'Yes') calls __io_putchar() */
      #define PUTCHAR_PROTOTYPE int __io_putchar(int ch)
    #else
      #define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)
    #endif /* __GNUC__ */
    /**
      * @brief  Retargets the C library printf function to the USART.
      * @param  None
      * @retval None
      */
    PUTCHAR_PROTOTYPE
    {
      /* Place your implementation of fputc here */
      /* e.g. write a character to the EVAL_COM1 and Loop until the end of transmission */
      HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1, 0xFFFF);
     
      return ch;
    }
    /* USER CODE END 1 */

            就这样而不需要宏定义任何内容了,代码中粗暴的printf("hello world")吧~,此方法亲测适用MDK和IAR环境

    ———————————————————————2020.07.06更新———————————————————————

    • 添加一些神奇的三字母词
    • 在printf的""内打入左侧的三字母,执行后会得到右侧的字符(^U^)ノ~YO
      • ??( ———— [

      • ??) ———— ]

      • ??< ———— {

      • ??> ———— }

      • ??= ———— #

      • ??/ ———— \

      • ??! ———— |

      • ??' ———— ^

      • ??- ———— ~

    • 一些转义字符

      • \ddd ddd表示1~3个八进制数字。这个转义符表示的字符就是给定的八进制数值所代表的字符。

      • \xddd 与上面类似,只是八进制数换成了十六进制数

        • 任何十六进制数都有可能会包含在\xddd序列中,但如果结果值得大小超出了表示字符的范围,其结果就是未定义的。

    展开全文
  • C语言陷阱与缺陷(中文版+英文版)

    热门讨论 2009-12-23 11:13:53
     7.1应对C语言标准变更  7.2标识符名称的限制  7.3整数的大小  7.4字符是有符号整数还是无符号整数  7.5移位运算符  7.6内存位置0  7.7除法运算时发生的截断  7.8随机数的大小  7.9大小写转换  7.10首先...
  • 7.4.5 重新分配内存 267 7.5 使用指针处理字符串 268 7.5.1 更多地控制字符串输入 268 7.5.2 使用指针数组 269 7.6 设计程序 280 7.6.1 问题 280 7.6.2 分析 281 7.6.3 解决方案 281 7.7 小结 291 7.8 ...
  • C语言大全第4版(高清PDF中文版)

    热门讨论 2011-06-07 09:23:56
    12.4 重新定义库函数 第13章 I/O函数 13.1 clearerr 13.1.1 例子 13.1.2 有关函数 13.2 fclose 13.2.1 例子 13.2.2 有关函数 13.3 feof 13.3.1 例子 13.3.2 有关函数 13.4 ferror ...
  • #include<stdio.h> /* 标准输入输出文件包含预处理命令 */ #include<string.h> /* 字符串文件含预处理命令 */ #include<ctype.h> /* 包含tolower()的原型 */ #include<stdlib.h> /* 标准库文件包含预处理命令 */ ...
  • #include<stdio.h>/*引用库函数*/ #include #include #include struct Lib/*定义图书信息的结构体变量*/ { char name[10];/*图书名*/ char writter[10];/*作者名*/ char number[10];/*分类号*/ char pub[10];/*...
  • 3 C语言开发51 内核单片机的范例 3.1 通过UART输出“Hello World !” 3.1.1 程序解析 3.1.2 程序的编译、连接与运行 3.1.2.1 C51 编译器及其应用 3.1.2.2 BL51 连接器及其应用 3.1.2.3 为编程器生成HEX文件 3.1.2.4 ...
  • 用户可以重新定义标准库函数,若如此,该函数将失去原有含义C. 用户若需调用标准库函数,调用前不必使用预处理命令将该函数所在的头文件包含D. 系统根本不允许用户重新定义标准库函数" onload="TED.EditorCore....

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

    1. 以下正确的说法是 (2分)

    A. 用户若需要调用标准库函数,调用前必须重新定义

    B. 用户可以重新定义标准库函数,若如此,该函数将失去原有含义

    C. 用户若需调用标准库函数,调用前不必使用预处理命令将该函数所在的头文件包含

    D. 系统根本不允许用户重新定义标准库函数" οnlοad="TED.EditorCore.ResizeImage(this);" οnerrοr="Stats.sendRequest('fr=tb0_forum&st_mod=editor&st_type=urlimagefail&st_value=1');this.removeAttribute('onload');this.removeAttribute('onerror');">); background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(224, 237, 255); text-align: center; color: rgb(44, 77, 121); text-decoration: none; margin-top: 10px; margin-right: 5px; margin-left: 5px; position: relative; background-position: 50% 50%; background-repeat: repeat no-repeat; ">提交

    2. 对于基类型相同的2个指针变量,不能进行的运算是 (2分)

    A. +

    B. =

    C. <

    D. -" οnlοad="TED.EditorCore.ResizeImage(this);" οnerrοr="Stats.sendRequest('fr=tb0_forum&st_mod=editor&st_type=urlimagefail&st_value=1');this.removeAttribute('onload');this.removeAttribute('onerror');">); background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(224, 237, 255); text-align: center; color: rgb(44, 77, 121); text-decoration: none; margin-top: 10px; margin-right: 5px; margin-left: 5px; position: relative; background-position: 50% 50%; background-repeat: repeat no-repeat; ">提交

    3. 函数rewind的作用是 (2分)

    A. 使位置指针指向文件的末尾

    B. 将位置指针指向文件中所要求的特定位置

    C. 使位置指针重新返回文件的开头

    D. 使位置指针自动移至下一个字符位置" οnlοad="TED.EditorCore.ResizeImage(this);" οnerrοr="Stats.sendRequest('fr=tb0_forum&st_mod=editor&st_type=urlimagefail&st_value=1');this.removeAttribute('onload');this.removeAttribute('onerror');">); background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(224, 237, 255); text-align: center; color: rgb(44, 77, 121); text-decoration: none; margin-top: 10px; margin-right: 5px; margin-left: 5px; position: relative; background-position: 50% 50%; background-repeat: repeat no-repeat; ">提交

    4. 有如下程序段 int *p,a=10,b=1;p=&a;a=*p+b;执行该程序段后,a的值为 (2分)

    A. 11

    B. 编译出错

    C. 12

    D. 10" οnlοad="TED.EditorCore.ResizeImage(this);" οnerrοr="Stats.sendRequest('fr=tb0_forum&st_mod=editor&st_type=urlimagefail&st_value=1');this.removeAttribute('onload');this.removeAttribute('onerror');">); background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(224, 237, 255); text-align: center; color: rgb(44, 77, 121); text-decoration: none; margin-top: 10px; margin-right: 5px; margin-left: 5px; position: relative; background-position: 50% 50%; background-repeat: repeat no-repeat; ">提交

    5. 已有以下数组定义int a[3][4];和f函数调用语句f(a);,则在f函数的说明中,对形参数组array的错误定义方式为 (2分)

    A. f(int array[][6])

    B. f(int array[2][5])

    C. f(int array[][4])

    D. f(int array[3][])" οnlοad="TED.EditorCore.ResizeImage(this);" οnerrοr="Stats.sendRequest('fr=tb0_forum&st_mod=editor&st_type=urlimagefail&st_value=1');this.removeAttribute('onload');this.removeAttribute('onerror');">); background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(224, 237, 255); text-align: center; color: rgb(44, 77, 121); text-decoration: none; margin-top: 10px; margin-right: 5px; margin-left: 5px; position: relative; background-position: 50% 50%; background-repeat: repeat no-repeat; ">提交

    6. 已经定义以下函数:fun(int *p){return *p;}该函数的返回值是 (2分)

    A. 形参p所指存储单元中的值

    B. 形参p中存放的值

    C. 不确定值

    D. 形参p的地址值" οnlοad="TED.EditorCore.ResizeImage(this);" οnerrοr="Stats.sendRequest('fr=tb0_forum&st_mod=editor&st_type=urlimagefail&st_value=1');this.removeAttribute('onload');this.removeAttribute('onerror');">); background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(224, 237, 255); text-align: center; color: rgb(44, 77, 121); text-decoration: none; margin-top: 10px; margin-right: 5px; margin-left: 5px; position: relative; background-position: 50% 50%; background-repeat: repeat no-repeat; ">提交

    7. 下面函数的功能是将指针t2所指向的链表,链接到t1所指向的链表的末端。假定t1所指向的链表非空,要实现此功能则应该在connect函数中①的位置添入的语句是 (2分)struct node

    {

    float x;

    struct node *next;

    };

    connect(struct node *t1, struct node *t2){

    if(t1->next==NULL)t1->next=t2;

    else connect(①, t2);

    }

    A. t1.next

    B. ++t1->next

    C. t1->next

    D. ++t1.next" οnlοad="TED.EditorCore.ResizeImage(this);" οnerrοr="Stats.sendRequest('fr=tb0_forum&st_mod=editor&st_type=urlimagefail&st_value=1');this.removeAttribute('onload');this.removeAttribute('onerror');">); background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(224, 237, 255); text-align: center; color: rgb(44, 77, 121); text-decoration: none; margin-top: 10px; margin-right: 5px; margin-left: 5px; position: relative; background-position: 50% 50%; background-repeat: repeat no-repeat; ">提交

    8. 以下可作为函数fopen中第一个参数的正确格式是 (2分)

    A. D:\user\test.txt

    B. D:user\test.txt

    C. "D:\\user\\test.txt"

    D. "D:\user\test.txt"" οnlοad="TED.EditorCore.ResizeImage(this);" οnerrοr="Stats.sendRequest('fr=tb0_forum&st_mod=editor&st_type=urlimagefail&st_value=1');this.removeAttribute('onload');this.removeAttribute('onerror');">); background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(224, 237, 255); text-align: center; color: rgb(44, 77, 121); text-decoration: none; margin-top: 10px; margin-right: 5px; margin-left: 5px; position: relative; background-position: 50% 50%; background-repeat: repeat no-repeat; ">提交

    9. fseek函数的正确调用形式是 (2分)

    A. fseek(文件类型指针,位移量,起始点)

    B. fseek(起始点,位移量,文件类型指针)

    C. fseek(位移量,起始点,文件类型指针)

    D. fseek(文件类型指针,起始点,位移量)" οnlοad="TED.EditorCore.ResizeImage(this);" οnerrοr="Stats.sendRequest('fr=tb0_forum&st_mod=editor&st_type=urlimagefail&st_value=1');this.removeAttribute('onload');this.removeAttribute('onerror');">); background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(224, 237, 255); text-align: center; color: rgb(44, 77, 121); text-decoration: none; margin-top: 10px; margin-right: 5px; margin-left: 5px; position: relative; background-position: 50% 50%; background-repeat: repeat no-repeat; ">提交

    10. 有以下程序段,程序在执行了c=&b;b=&a;语句后,表达式**c的值是 (2分)void main()

    {

    int a=5,*b,**c;

    c=&b;

    b=&a;

    }

    A. 变量a中的值

    B. 变量a的地址

    C. 变量b中的值

    D. 变量b的地址

    展开全文
  • 保留字和标准库函数不能重新定义或取消定义(R) 在C语言中存在一些保留标识符和函数名,在应用软件中,不能随意重新定义或者取消这些定义。例如在C语言中,存在一些重要的宏和变量:__LINE__,__FILE__,__FILE__...
  • 标准答案: // String的析构函数 String::~String(void) // 3分 { delete [] m_data; // 由于m_data是内部数据类型,也可以写成delete m_data; } // String的普通构造函数 String::String(const char *str) //...
  • 7.1 应对C语言标准变更 7.2 标识符名称的限制 7.3 整数的大小 7.4 字符是有符号整数还是无符号整数 7.5 移位运算符 7.6 内存位置0 7.7 除法运算时发生的截断 7.8 随机数的大小 7.9 大小写转换 7.10 首先...
  • 《C 陷阱与缺陷 》

    2012-10-04 09:26:20
    7.1 应对C语言标准变更 7.2 标识符名称的限制 7.3 整数的大小 7.4 字符是有符号整数还是无符号整数 7.5 移位运算符 7.6 内存位置0 7.7 除法运算时发生的截断 7.8 随机数的大小 7.9 大小写转换 7.10 首先释放,然后...
  • C陷阱与缺陷.pdf

    2010-05-29 20:32:37
    7.1 应对C语言标准变更 7.2 标识符名称的限制 7.3 整数的大小 7.4 字符是有符号整数还是无符号整数 7.5 移位运算符 7.6 内存位置0 7.7 除法运算时发生的截断 7.8 随机数的大小 7.9 大小写转换 7.10 首先释放,然后...
  • C陷阱与缺陷

    2014-02-07 10:43:54
    7.1应对C语言标准变更 7.2标识符名称的限制 7.3整数的大小 7.4字符是有符号整数还是无符号整数 7.5移位运算符 7.6内存位置0 7.7除法运算时发生的截断 7.8随机数的大小 7.9大小写转换 7.10首先释放,然后重新分配 ...
  • 6.12 使用库函数 193 6.13 inline关键字(C99) 195 第7章 作为类型说明符和运算符的“[]” 199 7.1 使用数组 200 7.2 深入理解数组 202 7.3 熟练应用一维数组 205 7.4 数组名做实参 209 7.5 多维数组 216 第8...
  • 7.1 应对C语言标准变更 104 7.2 标识符名称的限制 106 7.3 整数的大小 107 7.4 字符是有符号整数还是无符号整数 108 7.5 移位运算符 109 7.6 内存位置0 110 7.7 除法运算时发生的截断 111 7.8 随机数...
  • 13.第十三章 文件.txt

    2019-11-08 16:33:27
    C语言中没有输入输出语句,对文件的读写都是用库函数实现的。ANSI规定了标准输入输出函数,用它们对文件进行读写,这些函数的声明包含在头文件stdio.h中。 13.2 文件的打开与关闭 文件进行读写操作前先要打开,...
  • 4.5 字符串的本地C++库函数 174 4.5.1 查找以空字符结尾的字符串的长度 174 4.5.2 连接以空字符结尾的字符串 174 4.5.3 复制以空字符结尾的字符串 176 4.5.4 比较以空字符结尾的字符串 177 4.5.5 搜索以空字符...

空空如也

空空如也

1 2
收藏数 27
精华内容 10
关键字:

c语言重新定义标准库函数

c语言 订阅