LinuxC++开发面试系列(三):代码运行、gcc编译、system函数与VS2013 C4996解决方法

5 篇文章 2 订阅

同步GitHub在此 👉 https://github.com/TeFuirnever/GXL-Skill-Tree

代码讲解

如图即一个简单的 hello world 程序。
在这里插入图片描述

// 1、使用某个函数前,需要包含相应的头文件
// 2、可以通过man手册查询或者其他资料查询
// 3、头文件类似于菜单,头文件包含函数的声明,相当于菜单例举了菜名,函数调用,相当于点菜
// 4、<>通过包含系统的头文件(标准的头文件),""包含自定义的头文件
#include <stdio.h>

// 1、C语言由函数组成,有且仅有一个主函数
// 2、程序运行,先从main函数运行
// 3、return 0,程序正常结束
int main()
{
    // 注释:不是有效代码
    // 1、行注释, //相应的注释
    // 2、块注释,/* 相应的注释 */
    
    printf("hello world\n");
    // 1、这是一个C代码
    // 2、函数调用,printf功能往标准输出设备(屏幕)上打印内容
    // 3、\n代表换行
    
    return 0;
}

头文件目录:vi /usr/include/stdio.h
在这里插入图片描述

代码运行

在上一个博客中(LinuxC++开发面试系列(二):权限修改、进程管理与vim)中我们给出了出版本代码 hello world,接下来,我们将就 Linux 和 Windows 两个环境下进行程序的编译。

1)Linux下

运行编译的可执行程序,

0、切换目录,cd 即可

1、ls 查看目录信息

2、
- gcc hello.c ,默认在当前路径生成 a.exe
- gcc hello.c -o hello 生成 hello.exe

3、运行,在Linux下运行,当前路径,前面必须加 ./;非当前路径,写上完整路径即可
在这里插入图片描述

2)Windows 下

运行编译的可执行程序,

0、切换盘符,无需 cd

1、cd 目录

2、dir 查看目录信息

3、
- gcc hello.c ,默认在当前路径生成 a.exe
- gcc hello.c -o hello 生成 hello.exe

4、运行,在Windows下运行,无需./
在这里插入图片描述

gcc编译

C程序编译步骤:

1、预处理:gcc -E hello.c -o hello.i
在这里插入图片描述

2、编译: gcc -S hello.i -o hello.s
在这里插入图片描述

3、汇编: gcc -c hello.s -o hello.o
在这里插入图片描述

4、链接: gcc hello.o -o hello
在这里插入图片描述
5、运行
在这里插入图片描述

在这里插入图片描述

Linux查看需要链接的动态库:ldd
在这里插入图片描述
Windows查看支持的动态库:Depends
在这里插入图片描述

在这里插入图片描述

system函数

system函数:

int system(const char *command);

实例1

01_test.c:
在这里插入图片描述

#include <stdio.h>
#include <stdlib.h>

int main()
{
    printf("before sys\n");

    // 1、需要头文件 #include <stdlib.h>
    // 2、system功能:调用外部程序
    system("ls -alh");

    printf("after sys\n");

    return 0;
}

在这里插入图片描述

实例2

在这里插入图片描述

02_waibu.c:

#include <stdio.h>

int main()
{
    printf("我是小鲜肉,假的\n");

    printf("我是外部程序\n");

    return 0;
}

在这里插入图片描述

03_system.c:

#include <stdio.h>
#include <stdlib.h>

int main()
{
    printf("before sys\n");

    // 1、需要头文件 #include <stdlib.h>
    // 2、system功能:调用外部程序
    system("./waibu");

    printf("after sys\n");

    return 0;
}

在这里插入图片描述

在这里插入图片描述

字符编码:

1、Windows默认支持的中文编码为gbk,gb2312,ANSI

2、Linux默认支持的中文编码为utf-8(unicode)

实例3

calc 计算器

vim:
在这里插入图片描述
vscode:
在这里插入图片描述

#include <stdio.h>
#include <stdlib.h>

int main()
{
    printf("before sys\n");

    system("calc");

    printf("after sys\n");

    return 0;
}

在Linux下无效:
在这里插入图片描述

只在Windows下有效:
在这里插入图片描述

VS2013 C4996解决方法

由于微软在 VS2013 中不建议再使用c的传统库函数scanf,strcpy,sprintf等,所以直接使用这些库函数会提示C4996错误!

法一:

把这个宏定义放到.c文件的第一行

#define _CRT_SECURE_NO_WARNINGS

法二:

把这个代码放在主函数的任意一行

#pragma warning(disable:4996)

在这里插入图片描述

  • 6
    点赞
  • 2
    评论
  • 9
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

相关推荐
©️2020 CSDN 皮肤主题: 酷酷鲨 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值