/*--------------------------------------
names_st.h -- names_st 结构的头文件
--------------------------------------*/
#ifndef NAMES_ST_H
#define NAMES_ST_H #include <string.h> #define SLEN 32 //结构声明
struct names_st
{
char first[SLEN];
char last[SLEN];
}; //类型定义
typedef struct names_st names; //函数原型
void get_names(names*);
void show_names(const names*);
char* s_gets(char *st, int n); #endif

names_st.h

 /*-----------------------------------------
names_st.c -- 定义 names_st.h 中的函数
-----------------------------------------*/ #include <stdio.h>
#include "names_st.h" //包含头文件 //函数定义
void get_names(names *pn)
{
printf("Please enter your first name: ");
s_gets(pn->first, SLEN); printf("Please enter your last name: ");
s_gets(pn->last, SLEN);
} void show_names(const names *pn)
{
printf("%s %s", pn->first, pn->last);
} char* s_gets(char *st, int n)
{
char *ret_val, *find; if (ret_val = fgets(st, n, stdin))
{
if (find = strchr(st, '\n'))
*find = '\0';
else
while (fgetc(stdin) != '\n') continue; //处理输入行中的剩余字符
} return ret_val;
}

names_st.c

 /*----------------------------------------
useheader.c -- 使用 names_st 结构
----------------------------------------*/ #include <stdio.h>
#include "names_st.h"
#include "names_st.h" //第2次包含头文件 int main()
{
names candidate; get_names(&candidate);
printf("Let's welcome ");
show_names(&candidate);
printf(" to this program!\n"); return ;
}

useheader.c

第 16 章 C 预处理器和 C 库(条件编译)的更多相关文章

  1. 第 16 章 C 预处理器和 C 库(可变参数:stdarg.h)

    /*------------------------------------------------- varargs.c -- use variable number of arguments -- ...

  2. 第 16 章 C 预处理器和 C 库(string.h 库中的 memcpy() 和 memmove())

    /*----------------------------------------- mems.c -- 使用 memcpy() 和 memmove() ---------------------- ...

  3. 第 16 章 C 预处理器和 C 库(qsort() 函数)

    /*---------------------------------------- qsorter.c -- 用 qsort() 排序一组数字 --------------------------- ...

  4. 第 16 章 C 预处理器和 C 库(直角坐标转换极坐标)

    /*------------------------------------- rect_pol.c -- 把直角坐标转换为极坐标 ---------------------------------- ...

  5. 第 16 章 C 预处理器和 C 库(预定义宏)

    /*------------------------------------- predef.c -- 预定义宏和预定义标识符 ------------------------------------ ...

  6. C++ primer plus读书笔记——第16章 string类和标准模板库

    第16章 string类和标准模板库 1. string容易被忽略的构造函数: string(size_type n, char c)长度为n,每个字母都为c string(const string ...

  7. ASM:《X86汇编语言-从实模式到保护模式》第16章:Intel处理器的分页机制和动态页面分配

    第16章讲的是分页机制和动态页面分配的问题,说实话这个一开始接触是会把人绕晕的,但是这个的确太重要了,有了分页机制内存管理就变得很简单,而且能直接实现平坦模式. ★PART1:Intel X86基础分 ...

  8. C和指针 (pointers on C)——第十四章:预处理器

    第十四章 预处理器 我跳过了先进的指针主题的章节. 太多的技巧,太学科不适合今天的我.但我真的读,读懂.假设谁读了私下能够交流一下.有的小技巧还是非常有意思. 预处理器这一章的内容.大家肯定都用过.什 ...

  9. C Primer Plus--C预处理器和C库(1)

    目录 预处理符号 明显常量 #define 编译程序之前,先由预处理器检查程序(因此称为预处理器).根据程序中使用的预处理器指令,预处理用符号缩略语所代表的内容替换程序中的缩略语. 预处理器可以根据你 ...

随机推荐

  1. Hibernate框架 主配置文件(Hibernate.cfg.xml)基本

    数据库连接参数配置: <?xml version='1.0' encoding='UTF-8'?> <!--表明解析本XML文件的DTD文档位置,DTD是Document Type ...

  2. Mac 远程连接 Windows

    推荐使用微软官方发布的 Microsoft Remote Desktop,免费.流畅. 详见:https://docs.microsoft.com/en-us/windows-server/remot ...

  3. 前端通信:ajax设计方案(十)--- 完善Promise A+规范,增加mock数据功能

    半年不迭代,迭代搞半年,说的就是我,这里有点尴尬了,直接进入主题吧 我记得在这篇博客的时候集成了Promise的,不过那个时候就简简单单的写了一点最基础,在一些特殊的case上,还是有点问题的,所以才 ...

  4. mysql 查看建表语句

    show create table `table_name`; 结果如下:

  5. ida 调试 android fork

    在使用ida 调试android native代码时经常会碰见fork子进程的情况出现,而运行一个 android_server只能对一个进程进行调试或者attach,而ida 默认端口是23946, ...

  6. 实验吧 php

    Once More 题目地址:http://ctf5.shiyanbar.com/web/more.php 打开直接有源码: <?php if (isset ($_GET['password'] ...

  7. Nginx实战-后端应用健康检查

    严格来说,nginx是没有针对负载均衡后端节点的健康检查的,但是可以通过proxy_next_upstream来间接实现,但这个还是会把请求转发给故障服务器的,然后再转发给别的服务器,这样就浪费了一次 ...

  8. 支付宝(alipay)即时到账收款接口开发中的那些事儿

    不会做,看看也可以会,要做好就还是需要多学习 国庆回来就一直没状态,看完<银河护卫队>,印象最深的竟然是只有两句台词的呆萌groot,昨天才休息一天,大耍大吃,今天还是把昨天的知识学习一下 ...

  9. 基于Asp.Net Core的简单社区项目源代码开源

    2019年3月27号 更新版本 本项目基于 ASP.NET CORE 3.0+EF CORE 3.0开发 使用vs2019 +sqlserver 2017(数据库脚本最低支持sql server 20 ...

  10. Apollo 1 融合 Spring 的三个入口

    前言 Spring 作为 Java 世界非官方标准框架,任何一个中间件想要得到良好的发展,必须完美支持 Spring 的各种特性,即:无缝融入 Spring. Apollo 作为分布式配置中心,服务于 ...