/*--------------------------------------
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. Spring Boot + Spring Cloud 实现权限管理系统 后端篇(十四):项目打包部署

    项目打包部署 安装MySQL镜像 注意:如果使用docker镜像安装MySQL,也需要在前端部署主机安装MySQL,因为备份还原功能是使用MySQL的本地命令进行操作的. 下载镜像 执行以下命令,拉取 ...

  2. Java 8 新特性-菜鸟教程 (5) -Java 8 Stream

    Java 8 Stream Java 8 API添加了一个新的抽象称为流Stream,可以让你以一种声明的方式处理数据. Stream 使用一种类似用 SQL 语句从数据库查询数据的直观方式来提供一种 ...

  3. WebService与RMI(远程调用方式实现系统间通信)

    前言 本文是<分布式java应用基础与实践>读书笔记:另外参考了此博客,感觉讲的挺好的,尤其是其中如下内容: 另外,消息方式实现系统间通信本文不涉及.RMI则只采用spring RMI框架 ...

  4. [转]angular2中ng alerts的使用教程

    本文转自:https://blog.csdn.net/m0_37981481/article/details/79281879 由于想要一个好看的alert,于是去npm上搜了一下,手动捂脸,npm上 ...

  5. sealed关键字

    1. sealed关键字    当对一个类应用 sealed 修饰符时,此修饰符会阻止其他类从该类继承.类似于Java中final关键字.    在下面的示例中,类 B 从类 A 继承,但是任何类都不 ...

  6. WINAPI实现简易扫雷游戏

    //扫雷 #include <windows.h> #include <windowsx.h> #include <strsafe.h> #include < ...

  7. webAPI文件上传时文件过大404错误的问题

    背景:最近公司有个需求,外网希望自动保存数据到内网,内网有2台服务器可以相互访问,其中一台服务器外网可以访问,于是想在 这台服务器上放个中转的接口.后来做出来以后测试发现没有问题就放线上去了,不顾发现 ...

  8. 【easyui】关于easyui Datagrid一些样式记录

    此篇文章主要记录在使用datagrid中常见的修改样式方式以及样式效果配图!!!! 一丶存在选中框的时候标题栏合并显示序号字段. 代码展示: onLoadSuccess: function (data ...

  9. [PHP] 算法-删除链表中重复的结点的PHP实现

    删除链表中重复的结点: 1.定义两个指针pre和current 2.两个指针同时往后移动,current指针如果与后一个结点值相同,就独自往前走直到没有相等的 3.pre指针next直接指向curre ...

  10. 【常用配置】Spring框架web.xml通用配置

    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java. ...