第三周Linux编程实例练习
通过以下程序来练习
head.h
# ifndef HEAD_H
#define HEAD_H
#include <stdio.h>
int add(int,int);
int sub(int,int);
int mul(int,int);
double div(int,int);
#endif
add.c
#include "head.h"
int add(int a,int b)
{
return a+b;
}
sub.c
#include "head.h"
int sub(int a,int b)
{
return a-b;
}
mul.c
#include "head.h"
int mul(int a,int b)
{
return a*b;
}
div.c
#include "head.h"
double div(int a,int b)
{
return a/b;
}
main.c
#include "head.h"
int main(void)
{
int a,b;
printf("enter two numbers:");
scanf("%d %d",&a,&b);
printf("add:%d\n",add(a,b));
printf("sub:%d\n",sub(a,b));
printf("mul:%d\n",mul(a,b));
printf("div:%f\n",div(a,b));
return 0;
}
编译和运行以上代码:
制作(add.c,sub.c,mul.c,div.c)四个模块的mymath.a静态库;
main.c使用静态库;
制作(add.c,sub.c,mul.c,div.c)四个模块的mymath.so共享库;
main.c使用共享库;
编译目标文件为testmymath的makefile
遇到的问题
- 1、程序编译出现问题
- 解决方法:在head.h和main.c中缺少头文件,分别在head.h中添加#include "stdio.h",在main.c中添加#include "head.h"的头文件
- 2、makefile的编写出现问题
- 解决方法:发现这个错误是由makefile中的tab的长度导致的,在makefile中的命令需要以tab键开始,在.vimrc文件中发现没有设置tab键的默认长度,然后在.vimrc中添加如下配 置:set tabstop=4,问题解决
第三周Linux编程实例练习的更多相关文章
- 2017-2018-2 1723《程序设计与数据结构》第十一周作业 & 实验三 & (总体)第三周结对编程 总结
作业地址 第十一次作业:https://edu.cnblogs.com/campus/besti/CS-IMIS-1723/homework/1933 (作业界面已评分,可随时查看,如果对自己的评分有 ...
- 三、MapReduce编程实例
前文 一.CentOS7 hadoop3.3.1安装(单机分布式.伪分布式.分布式 二.JAVA API实现HDFS MapReduce编程实例 @ 目录 前文 MapReduce编程实例 前言 注意 ...
- 第三周linux学习
实验二 Linux下C语言编程基础 一.实验目的 1. 熟悉Linux系统下的开发环境 2. 熟悉vi的基本操作 3. 熟悉gcc编译器的基本原理 4. 熟练使用gcc编译器的常用选项 5 .熟练使用 ...
- 第三周LINUX学习笔记
周期性任务丶find 文件查找:find命令 locate :在数据库中查找,非实时查找,精确度不高,查找速度快,模糊查找 /tmp/passwad/a.textfind:实时查找:速度慢 ,精确 ...
- Linux内核及分析 第三周 Linux内核的启动过程
实验过程: 打开shell终端,执行以下命令: cd LinuxKernel/ qemu -kernel linux-3.18.6/arch/x86/boot/bzImage-initrd rootf ...
- 第三周Linux学习报告
Linux内核源代码简介: arch/x86中内容重点关注 init目录重要,内核启动相关的代码基本上都在init目录下.如main.c等.Start_kernel函数相当于普通C程序的main函数. ...
- 20172325『Java程序设计』课程 结对编程练习_四则运算第三周阶段总结
20172325『Java程序设计』课程 结对编程练习_四则运算第三周阶段总结 结对伙伴 学号:20172306 姓名:刘辰 在这次项目的完成过程中刘辰同学付出了很多,在代码的实践上完成的很出色,在技 ...
- Linux网络编程实例解析
**************************************************************************************************** ...
- linux下socket编程实例
linux下socket编程实例一.基本socket函数Linux系统是通过提供套接字(socket)来进行网络编程的.网络的socket数据传输是一种特殊的I/O,socket也是一种文件描述符.s ...
随机推荐
- ansible安装基本使用
备注使用yum (centos7) 1. 安装 yum install -y ansible 2. 免密登录(ssh,最好使用dns 解析) // create ssh key ssh-keyge ...
- yii 操作cookie
原文地址:http://blog.sina.com.cn/s/blog_664c9f650100yqkn.html 设置cookie: $cookie = new CHttpCookie('mycoo ...
- 调用 SSPI 失败,请参见内部异常 解决方法
2017-11-12 12:49:53:706] OnServerConnectionAvailable error : System.Security.Authentication.Authenti ...
- 关于Gateway
为什么要有gateway?就是因为如果没有,很多的功能需要在在每个微服务中都实现,这样成本很高.
- 创建工程常量 (OC中的宏定义)
1.oc创建宏 文件 2.swift创建 常量文件 在swift中, 并非是预编译代码替换, 而是设置全局常量, 简单宏, 直接let 加常量名即可
- ubuntu 源更新(sources.list)
首先备份源列表: sudo cp /etc/apt/sources.list /etc/apt/sources.list_backup 而后用gedit或其他编辑器打开(也可以复制到Windows下打 ...
- ODBC CRecordSet访问
一.概述 ODBC 是一种使用SQL 的程序设计接口.使用ODBC 让应用程序的编写者避免了与数据源相联的复杂性.这项技术目前已经得到了大多数DBMS 厂商们的广泛支持. Microsoft Deve ...
- mongodb配置和基本操作
MongoDB3.0新特性WiredTigerMMAPv1可插拔引擎API基于web的可视化管理工具 查看版本号mongod --version启动数据库 mongod --dbpath $dbpat ...
- memcache两种客户端比较
1.memcached client for java 客户端API:memcached client for java 网址:http://www.whalin.com/memcached(我从 h ...
- keytool生成JKS证书的详细步骤及截图
注:防止有不必要的空格,尽量不要复制粘贴 1. 依据CFCA所提供的CN生成密钥存储文件和密钥对(创建JKS证书库) keytool -genkey -v -alias slserver -keyal ...