linux编程──gcc和clang
实验链接
编译原理实验-GCC/Clang工具链在ARM架构上的使用
实验报告
第1关:理解程序的不同表示形式
##问题1-1:
如果在命令行下执行
gcc -DNEG -E sample.c -o sample.i
生成的sample.i 与之前的有何区别?
根据定义NEG,而选择了M定义为-4
##问题1-2
请对比sample-32.s和sample.s,找出它们的区别,并上网检索给出产生这些区别的原因。如:
- pushq和pushl
- rsp和esp
sample-32.s和sample.s的区别
diff sample-32.s sample.s
1,4c1,6
< .file "sample.c"
< .text
< .globl main
< .type main, @function
---
> .arch armv8-a
> .file "sample.c"
> .text
> .align 2
> .global main
> .type main, %function
6,18c8,17
< .LFB0:
< .cfi_startproc
< pushl %ebp
< .cfi_def_cfa_offset 8
< .cfi_offset 5, -8
< movl %esp, %ebp
< .cfi_def_cfa_register 5
< subl $16, %esp
< movl $4, -4(%ebp)
< cmpl $0, -4(%ebp)
< je .L2
< addl $4, -4(%ebp)
< jmp .L3
---
> sub sp, sp, #16
> mov w0, -4
> str w0, [sp, 12]
> ldr w0, [sp, 12]
> cmp w0, 0
> beq .L2
> ldr w0, [sp, 12]
> add w0, w0, 4
> str w0, [sp, 12]
> b .L3
20c19,21
< sall $2, -4(%ebp)
---
> ldr w0, [sp, 12]
> lsl w0, w0, 2
> str w0, [sp, 12]
22,31c23,28
< movl $0, %eax
< leave
< .cfi_restore 5
< .cfi_def_cfa 4, 4
< ret
< .cfi_endproc
< .LFE0:
< .size main, .-main
< .ident "GCC: (Ubuntu 5.4.0-6ubuntu1~16.04.12) 5.4.0 20160609"
< .section .note.GNU-stack,"",@progbits
---
> mov w0, 0
> add sp, sp, 16
> ret
> .size main, .-main
> .ident "GCC: (Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.12) 5.4.0 20160609"
> .section .note.GNU-stack,"",@progbits
问题1-3 你可以用clang替换gcc,重复上面的各步,比较使用clang和gcc分别输出的结果有何异同。
gcc sample.c -o sample -v
clang sample.c -o sample -v
diff gcc.txt clang.txt
1,5c1,2
< Using built-in specs.
< COLLECT_GCC=gcc
< COLLECT_LTO_WRAPPER=/usr/lib/gcc/aarch64-linux-gnu/5/lto-wrapper
< Target: aarch64-linux-gnu
< Configured with: ../src/configure -v --with-pkgversion='Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.12' --with-bugurl=file:///usr/share/doc/gcc-5/README.Bugs --enable-languages=c,ada,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-5 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-libquadmath --enable-plugin --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-5-arm64/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-5-arm64 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-5-arm64 --with-arch-directory=aarch64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --enable-multiarch --enable-fix-cortex-a53-843419 --disable-werror --enable-checking=release --build=aarch64-linux-gnu --host=aarch64-linux-gnu --target=aarch64-linux-gnu
---
> clang version 10.0.1
> Target: aarch64-unknown-linux-gnu
7,14c4,14
< gcc version 5.4.0 20160609 (Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.12)
< COLLECT_GCC_OPTIONS='-o' 'sample' '-v' '-mlittle-endian' '-mabi=lp64'
< /usr/lib/gcc/aarch64-linux-gnu/5/cc1 -quiet -v -imultiarch aarch64-linux-gnu sample.c -quiet -dumpbase sample.c -mlittle-endian -mabi=lp64 -auxbase sample -version -fstack-protector-strong -Wformat -Wformat-security -o /tmp/cc1Kcmw6.s
< GNU C11 (Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.12) version 5.4.0 20160609 (aarch64-linux-gnu)
< compiled by GNU C version 5.4.0 20160609, GMP version 6.1.0, MPFR version 3.1.4, MPC version 1.0.3
< GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
< ignoring nonexistent directory "/usr/local/include/aarch64-linux-gnu"
< ignoring nonexistent directory "/usr/lib/gcc/aarch64-linux-gnu/5/../../../../aarch64-linux-gnu/include"
---
> InstalledDir: /opt/llvm10/llvm-install/bin
> Found candidate GCC installation: /usr/lib/gcc/aarch64-linux-gnu/5
> Found candidate GCC installation: /usr/lib/gcc/aarch64-linux-gnu/5.4.0
> Found candidate GCC installation: /usr/lib/gcc/aarch64-linux-gnu/6
> Found candidate GCC installation: /usr/lib/gcc/aarch64-linux-gnu/6.0.0
> Selected GCC installation: /usr/lib/gcc/aarch64-linux-gnu/5.4.0
> Candidate multilib: .;@m64
> Selected multilib: .;@m64
> "/opt/llvm10/llvm-install/bin/clang-10" -cc1 -triple aarch64-unknown-linux-gnu -emit-obj -mrelax-all -disable-free -disable-llvm-verifier -discard-value-names -main-file-name sample.c -mrelocation-model static -mthread-model posix -mframe-pointer=non-leaf -fmath-errno -fno-rounding-math -masm-verbose -mconstructor-aliases -target-cpu generic -target-feature +neon -target-abi aapcs -fallow-half-arguments-and-returns -dwarf-column-info -fno-split-dwarf-inlining -debugger-tuning=gdb -v -resource-dir /opt/llvm10/llvm-install/lib/clang/10.0.1 -internal-isystem /usr/local/include -internal-isystem /opt/llvm10/llvm-install/lib/clang/10.0.1/include -internal-externc-isystem /usr/include/aarch64-linux-gnu -internal-externc-isystem /include -internal-externc-isystem /usr/include -fdebug-compilation-dir /data/workspace/myshixun -ferror-limit 19 -fmessage-length 0 -fno-signed-char -fgnuc-version=4.2.1 -fobjc-runtime=gcc -fdiagnostics-show-option -fcolor-diagnostics -faddrsig -o /tmp/sample-ee930b.o -x c sample.c
> clang -cc1 version 10.0.1 based upon LLVM 10.0.1 default target aarch64-unknown-linux-gnu
> ignoring nonexistent directory "/include"
17d16
< /usr/lib/gcc/aarch64-linux-gnu/5/include
19c18
< /usr/lib/gcc/aarch64-linux-gnu/5/include-fixed
---
> /opt/llvm10/llvm-install/lib/clang/10.0.1/include
23,33c22
< GNU C11 (Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.12) version 5.4.0 20160609 (aarch64-linux-gnu)
< compiled by GNU C version 5.4.0 20160609, GMP version 6.1.0, MPFR version 3.1.4, MPC version 1.0.3
< GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
< Compiler executable checksum: 0aba823f581e395c09d29a3a6f3b731f
< COLLECT_GCC_OPTIONS='-o' 'sample' '-v' '-mlittle-endian' '-mabi=lp64'
< as -v -EL -mabi=lp64 -o /tmp/cc281Jv1.o /tmp/cc1Kcmw6.s
< GNU assembler version 2.26.1 (aarch64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.26.1
< COMPILER_PATH=/usr/lib/gcc/aarch64-linux-gnu/5/:/usr/lib/gcc/aarch64-linux-gnu/5/:/usr/lib/gcc/aarch64-linux-gnu/:/usr/lib/gcc/aarch64-linux-gnu/5/:/usr/lib/gcc/aarch64-linux-gnu/
< LIBRARY_PATH=/usr/lib/gcc/aarch64-linux-gnu/5/:/usr/lib/gcc/aarch64-linux-gnu/5/../../../aarch64-linux-gnu/:/usr/lib/gcc/aarch64-linux-gnu/5/../../../../lib/:/lib/aarch64-linux-gnu/:/lib/../lib/:/usr/lib/aarch64-linux-gnu/:/usr/lib/../lib/:/opt/llvm10/antlr4-cpp/dist/:/opt/llvm10/antlr4-cpp/dist/:./:/usr/lib/gcc/aarch64-linux-gnu/5/../../../:/lib/:/usr/lib/
< COLLECT_GCC_OPTIONS='-o' 'sample' '-v' '-mlittle-endian' '-mabi=lp64'
< /usr/lib/gcc/aarch64-linux-gnu/5/collect2 -plugin /usr/lib/gcc/aarch64-linux-gnu/5/liblto_plugin.so -plugin-opt=/usr/lib/gcc/aarch64-linux-gnu/5/lto-wrapper -plugin-opt=-fresolution=/tmp/ccjhDePW.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --sysroot=/ --build-id --eh-frame-hdr --hash-style=gnu --as-needed -dynamic-linker /lib/ld-linux-aarch64.so.1 -X -EL -maarch64linux --fix-cortex-a53-843419 -z relro -o sample /usr/lib/gcc/aarch64-linux-gnu/5/../../../aarch64-linux-gnu/crt1.o /usr/lib/gcc/aarch64-linux-gnu/5/../../../aarch64-linux-gnu/crti.o /usr/lib/gcc/aarch64-linux-gnu/5/crtbegin.o -L/usr/lib/gcc/aarch64-linux-gnu/5 -L/usr/lib/gcc/aarch64-linux-gnu/5/../../../aarch64-linux-gnu -L/usr/lib/gcc/aarch64-linux-gnu/5/../../../../lib -L/lib/aarch64-linux-gnu -L/lib/../lib -L/usr/lib/aarch64-linux-gnu -L/usr/lib/../lib -L/opt/llvm10/antlr4-cpp/dist -L/opt/llvm10/antlr4-cpp/dist -L. -L/usr/lib/gcc/aarch64-linux-gnu/5/../../.. /tmp/cc281Jv1.o -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed /usr/lib/gcc/aarch64-linux-gnu/5/crtend.o /usr/lib/gcc/aarch64-linux-gnu/5/../../../aarch64-linux-gnu/crtn.o
---
> "/usr/bin/ld" -EL -z relro --hash-style=gnu --eh-frame-hdr -m aarch64linux -dynamic-linker /lib/ld-linux-aarch64.so.1 -o sample /usr/lib/gcc/aarch64-linux-gnu/5.4.0/../../../aarch64-linux-gnu/crt1.o /usr/lib/gcc/aarch64-linux-gnu/5.4.0/../../../aarch64-linux-gnu/crti.o /usr/lib/gcc/aarch64-linux-gnu/5.4.0/crtbegin.o -L/usr/lib/gcc/aarch64-linux-gnu/5.4.0 -L/usr/lib/gcc/aarch64-linux-gnu/5.4.0/../../../aarch64-linux-gnu -L/lib/aarch64-linux-gnu -L/usr/lib/aarch64-linux-gnu -L/usr/lib/gcc/aarch64-linux-gnu/5.4.0/../../.. -L/opt/llvm10/llvm-install/bin/../lib -L/lib -L/usr/lib -L/opt/llvm10/antlr4-cpp/dist -L/opt/llvm10/antlr4-cpp/dist -L. /tmp/sample-ee930b.o -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed /usr/lib/gcc/aarch64-linux-gnu/5.4.0/crtend.o /usr/lib/gcc/aarch64-linux-gnu/5.4.0/../../../aarch64-linux-gnu/crtn.o
第2关:理解使用库的C程序的编译和链接
问题2-1:
-nostdinc选项的用处是什么?
请列出 EduCoder 平台上 gcc C程序默认的头文件查找路径
如何在使用了-nostdinc选项的同时使得上述命令编译通过? 请进一步说明通过的原因(不能修改源文件)。
命令选项 -nostdinc 不搜索默认路径头文件
-nostdinc: 不要在标准系统目录中寻找文件,只是搜索‘-I’选项指定的目录
root@evassh-17600448:/data/workspace/myshixun/lab2# gcc -E sample-io.c -o sample-io.i
root@evassh-17600448:/data/workspace/myshixun/lab2# gcc sample-io.i -o sample-io
root@evassh-17600448:/data/workspace/myshixun/lab2# ./sample-io
Hello, world!
a=8
第3关:C 程序的编写和编译以及各种程序表示的对比
在文件HW/H3/c/sort.c中编写一个排序程序
#include<stdio.h>
#define N 1001
void selectSort(int a[], int n);
int main(){int n;scanf("%d", &n);int a[N];for(int i=0;i<n;i++){scanf("%d", &a[i]);}selectSort(a, n);for(int i=0;i<n;i++){printf("%d ", a[i]);}printf("\n");return 0;
}
// 排序函数
void selectSort(int a[], int n)
{for(int i=0;i<n;i++){int k=i;for(int j=i+1;j<n;j++){if(a[j]<a[k]){k=j;}}if(k!=i){int t=a[k];a[k]=a[i];a[i]=t;}}
}
在文件HW/H3/c/Makefile中编写编译规则
exe=sort
$(exe):$(wildcard *.c)gcc -o $@ $^.PHONY:cleanclean:rm -f $(exe)echo "clean object files"
相关文章:
![](https://www.ngui.cc/images/no-images.jpg)
linux编程──gcc和clang
实验链接 编译原理实验-GCC/Clang工具链在ARM架构上的使用 实验报告 第1关:理解程序的不同表示形式 ##问题1-1: 如果在命令行下执行 gcc -DNEG -E sample.c -o sample.i生成的sample.i 与之前的有何区别? 根据定义NEG,而选择了M定义为-4…...
![](https://img-blog.csdnimg.cn/ea48c1dc15804d2a965dcd5c0b0969c2.png)
字节跳动测试岗面试记:二面被按地上血虐,所幸Offer已到手...
在互联网做了几年之后,去大厂“镀镀金”是大部分人的首选。大厂不仅待遇高、福利好,更重要的是,它是对你专业能力的背书,大厂工作背景多少会给你的简历增加几分竞争力。 但说实话,想进大厂还真没那么容易。最近面试字…...
![](https://img-blog.csdnimg.cn/efa307fcdb6c4587badef2a4292e11a6.png)
5.多线程学习
作者:爱塔居 专栏:JavaEE 作者简介:大三学生,喜欢总结与分享~ 文章目录 目录 文章目录 章节回顾 一、wait 和notify 二、设计模式 2.1 单例模式 章节回顾 线程安全 1.一个线程不安全的案例(两个线程各自自增5w次&…...
![](https://img-blog.csdnimg.cn/5562aac243354a6b807ac853c04a5f9e.jpeg)
数据结构中的堆
一、树的重要知识点 节点的度:一个节点含有的子树的个数称为该节点的度(有几个孩子)叶节点或终端节点:度为0的节点称为叶节点;如上图:B、C、H、I...等节点为叶节点(0个孩子)非终端节点或分支节点…...
![](https://img-blog.csdnimg.cn/img_convert/d98aced98f3a440f93b3a6de652891d6.jpeg)
Linux内核设备信息集合
本文结合设备信息集合的详细讲解来认识一下设备和驱动是如何绑定的。所谓设备信息集合,就是根据不同的外设寻找各自的外设信息,我们知道一个完整的开发板有 CPU 和各种控制器(如 I2C 控制器、SPI 控制器、DMA 控制器等)࿰…...
![](https://img-blog.csdnimg.cn/b5f3eed322e1462b9cdccfa5da55f80b.png)
若依框架---权限管理设计
前言 若依权限管理包含两个部分:菜单权限 和 数据权限。菜单权限控制着我们可以执行哪些操作。数据权限控制着我们可以看到哪些数据。 菜单是一个概括性名称,可以细分为目录、菜单和按钮,以若依自身为例: 目录,就是页…...
![](https://www.ngui.cc/images/no-images.jpg)
Java设计模式(二)——工厂模式
当用户需要一个类的子类实例,且不希望与该类的子类形成耦合或者不知道该类有哪些子类可用时,可采用工厂模式;当用户需要系统提供多个对象,且希望和创建对象的类解耦时,可采用抽象工厂模式。 工厂模式一般分为简单工厂、…...
![](https://img-blog.csdnimg.cn/ca4a5d40857147cd864bc1bfcfa7dc71.png)
【Maven】
MavenMaven简介仓库坐标Maven项目构建依赖管理生命周期及插件插件模块拆分与开发聚合继承属性版本管理资源配置多环境开发配置跳过测试私服Maven简介 Maven的本质时一个项目管理工具,将项目开发和管理过程抽象成一个项目对象模型(POM) POM(Project Object Model)&a…...
![](https://img-blog.csdnimg.cn/9cacea44cacf4fb69df8797cbbc12ae9.png)
[JAVA]继承
目录 1.继承的概念 2.继承的语法 3.父类成员访问 3.1子类中访问父类成员变量 3.2子类中访问父类成员方法 4.super关键字 5.子类构造方法 6.继承方式 7.final关键字和类的关系 面向对象思想中提出了继承的概念,专门用来进行共性抽取,实现代码复…...
![](https://img-blog.csdnimg.cn/c5946b9b0ab54809918e9a2b4bdd2f2b.png)
Vue3 pinia持久化存储(组合式Api案例演示)
pinia-plugin-persist( pinia持久化插件) 本文采用的是 组合式Api的方式来做Pinia的持久化存储演示 如果对pinia的持久化还是不是很了解的👨🎓|👩🎓,可以看一下笔者的上一篇文章…...
![](https://www.ngui.cc/images/no-images.jpg)
8个你一看就觉得很棒的Vue开发技巧
1.路由参数解耦 通常在组件中使用路由参数,大多数人会做以下事情。 export default {methods: {getParamsId() {return this.$route.params.id}} }在组件中使用 $route 会导致与其相应路由的高度耦合,通过将其限制为某些 URL 来限制组件的灵活性。 正…...
![](https://img-blog.csdnimg.cn/f11db5c5bba349d18ef690b44b03fd41.png)
vue3+ts 开发效率提升
1、vite pnpm项目初始化 pnpm: 比npm或yarn快10倍 pnpm与其他包管理器(如npm和Yarn)的不同之处在于它使用一种称为“硬链接”的独特安装方法。当你使用PNPM安装一个包时,它并不会将包的文件复制到每个项目的node_modules目录中&a…...
![](https://img-blog.csdnimg.cn/6bb068d0fd2b4f06b770ac004cd3e064.png)
【数据结构与算法】队列和栈的相互实现以及循环队列
目录🌔一.用队列实现栈🌙1.题目描述🌙2.思路分析🌙3.代码实现⛈二.用栈实现队列☔1.题目描述☔2.思路分析☔3.代码实现🌈三.实现循环队列🌔一.用队列实现栈 🌙1.题目描述 我们先看一下题目链接…...
![](https://www.ngui.cc/images/no-images.jpg)
mysql连接不上问题解决
公司新搭内网测试环境,mysql远程登录问题解决 远程登录: 1 修改host, mysql> select user,host,plugin from user; ---------------------------------------------------- | user | host | plugin | ------------------------…...
![](https://img-blog.csdnimg.cn/8eb6a25e738049b199b8450834576c02.png#pic_center)
利用nginx实现动静分离的负载均衡集群实战
前言 大家好,我是沐风晓月,今天我们利用nginx来作为负载,实现两台apache服务器的动静分离集群实战; 本文收录于沐风晓月的专栏《linux基本功-系统服务实战》,更多内容可以关注我的博客: https://blog.csd…...
![](https://img-blog.csdnimg.cn/cd57a307ec014dcbb6d302b9a3fb4f16.gif)
与chatGPT神聊,引领你深入浅出系统调用
在操作系统的教学中,系统调用的作用不言而喻,但是,对系统调用常常是雾里看花,似乎明白,又难以真正的触及,即使在代码中调用了系统调用,比如调用fork()创建进程࿰…...
![](https://img-blog.csdnimg.cn/2232f84187074914b515026f43ded582.png)
自学大数据第十天~Hbase
随着数据量的增多,数据的类型也不像原来那样都是结构化数据,还有非结构化数据; Hbase时google 的bigtable的开源实现, BigtableHbase文件存储系统GFSHDFS海量数据处理MRMR协同管理服务chubbyzookeeper虽然有了HDFS和MR,但是对于数据的实时处理是比较困难的,没有办法应对数据的…...
![](https://www.ngui.cc/images/no-images.jpg)
vue更高效的工具-vite
目录 1.webpack 2.vite是什么 3.使用vite创建项目 4.最后总结 🐼webpack 简单来说,Webpack是一个打包工具。 站在2018年的角度,成为一个优秀的前端工程师,除了要会写页面样式和动态效果之外,还需要会用主流的单页…...
![](https://img-blog.csdnimg.cn/img_convert/7ba5c563346db9b049c052c81ff9be43.png)
HFish蜜罐的介绍和简单测试(一)
目录 0、什么是蜜罐 0.1、蜜罐的定义 0.2、蜜罐的优势 0.3、蜜罐与情报 1、HFish介绍 1.1、设计理念 1.2、HFish架构 1.3、HFish特点 1.4、常见蜜罐场景 2、快速部署 2.1、环境要求 2.2、联网环境,一键安装 2.3、安装效果 3、错误排查 3.1、管理端问题…...
![](https://www.ngui.cc/images/no-images.jpg)
2023面试题汇总二
一、CSS面试题 1. 清除浮动的方式有哪些? 为什么要清除浮动?因为浮动的盒子脱离标准流,如果父盒子没有设置高度的话,下面的盒子就会撑上来。 额外标签法(在最后一个浮动标签后,新加一个标签,给其设置cle…...
![](https://www.ngui.cc/images/no-images.jpg)
C# 支付宝接口在线收款退款
收款 在C#中使用支付宝在线支付功能,需要使用支付宝开放平台提供的SDK(软件开发工具包),通过SDK中提供的API(应用程序接口)实现在线支付功能。 以下是使用C#实现支付宝在线支付的大致步骤: 获…...
![](https://img-blog.csdnimg.cn/bed8f7524c4f49ce906eea80c0c6156c.png)
python例程:《企业编码生成系统》程序
目录《企业编码生成系统》程序使用说明主要代码演示源码及说明文档下载路径《企业编码生成系统》程序使用说明 在PyCharm中运行《企业编码生成系统》即可进入如图1所示的系统主界面。在该界面中可以选择要使用功能对应的菜单进行不同的操作。在选择功能菜单时,只需…...
![](https://www.ngui.cc/images/no-images.jpg)
基于EB工具的TC3xx_MCAL配置开发04_ADC模块软件触发Demo配置
目录 1.概述2. EB配置2.1 添加HwUnit2.2 AdcPrescale配置2.3 添加ADC通道2.4 添加Adc Group2.5 Adc Group配置2.5.1 AdcGroup->General2.5.2 AdcGroup->AdcNotification2.5.3 AdcGroup->AdcGroupDefinition2.5.4 AdcGroup->AdcResRegDefinition2.6 中断配置1.概述 …...
![](https://img-blog.csdnimg.cn/190976d8dc5c469c9b21e267e9cf293d.gif#pic_center)
内存操作函数
前言 🎈个人主页:🎈 :✨✨✨初阶牛✨✨✨ 🐻推荐专栏: 🍔🍟🌯 c语言进阶 🔑个人信条: 🌵知行合一 🍉本篇简介:>:介绍c语言中有关指针更深层的知识. 金句分享: ✨未来…...
![](https://img-blog.csdnimg.cn/3819aa061ef24913a330092c2d1625bf.png)
免费搭建个人博客
免费搭建个人博客,并发布到公网 利用hexo搭建个人博客,通过gitee的pages发布到公网 1 前置准备 安装git、安装node.js(尽量选择长期支持的版本) node.js官网:https://nodejs.org/en/ git官网:https://git-scm.com/book/zh/v2 安装…...
![](https://img-blog.csdnimg.cn/aefd052778cd46a9984bee490f847034.png#pic_center)
【Vue全家桶】详解Vue Router(一)
【Vue全家桶】Vue Router详解(一) Vue系列文章目录: 内容参考链接Vue(一)【Vue全家桶】邂逅Vue、Vue的多种引入方式Vue(二)【Vue全家桶】声明式编程、MVVMVue(三)【Vue…...
![](https://img-blog.csdnimg.cn/img_convert/38ef11086424b4a22006c33a7c66e612.jpeg)
9大 HIVE SQL 最频繁被问到的面试题
SQL是用于数据分析和数据处理的最重要的编程语言之一,因此与数据科学相关的工作(例如数据分析师、数据科学家和数据工程师)在面试时总会问到关于 SQL 的问题。 SQL面试问题旨在评估应聘者的技术和解决问题的能力。因此对于应聘者来说&#x…...
![](https://img-blog.csdnimg.cn/img_convert/ca595786e857e2dd2be053b7818c5e3f.webp?x-oss-process=image/format,png)
学大数据算跟风吗?
随着互联网、物联网和人工智能等技术的不断发展,大数据技术逐渐进入人们的视野,成为一个备受关注的热点话题。那么,大数据专业好学吗?前景如何?下面我们来一起探讨一下。 一、大数据专业的学习难度 大数据技术是一种综…...
![](https://img-blog.csdnimg.cn/img_convert/383475ea6a445d217d526e6e664d7984.png)
[C#]关于ListBox的坑
在用C#写个Demo程序的时候,使用ListBox保存读取到的每行内容。然后在重复读取的时候需要清除ListBox中的内容,我看到ListBox有清除的函数:lsbFiles.Items.Clear();以为这个函数就可以解决所有的问题,但是....于是想了个方法准备一…...
![](https://img-blog.csdnimg.cn/926b3a9dffb64d8e9bc2a876073f80c2.png)
Apache POI 入门·第一话
文章目录1 摘要2 Apache POI2.1 介绍2.2 应用场景2.3 入门案例2.3.1 将数据写入Excel文件2.3.1.1 导入POI maven坐标2.3.1.2 代码开发2.3.1.3 实现效果2.3.2 读取Excel文件中的数据2.3.3 实现效果2.4 开发案例——导出运营数据Excel报表2.4.1 产品原型2.4.2 接口设计2.4.3 代码…...
![](https://img-blog.csdnimg.cn/img_convert/49e273691e53487183cd21087690d01c.png)
做外贸的人如何上国外网站/西安发布最新通知
原文首发于同名微信公号「Allen5G」,欢迎大家搜索关注!C语言的变量属性1.C语言中的变量可以有自己的属性2.在定义变量的时候可以加上“属性”关键字3.“属性”关键字指明变量的特有意义auto关键字1.auto即C语言中局部变量的默认属性2.auto表明将被修饰的…...
![](https://raw.githubusercontent.com/youminglan/Picture/main/img/20210507103033.png)
平面设计师要学哪些软件/福建seo关键词优化外包
残差网络 什么是残差: 残差在数理统计中是指实际观察值与估计值(拟合值)之间的差 更准确地,假设我们想要找一个 xxx,使得 f(x)bf(x)bf(x)b,给定一个 xxx 的估计值 x0x0x0,残差(re…...
![](http://static.oschina.net/uploads/img/201406/23101710_VAXn.gif)
国际企业网站建设/合肥优化营商环境
2019独角兽企业重金招聘Python工程师标准>>> Maven 系列 五 :使用Nexus搭建Maven私服 博客分类: maven 私服是架设在局域网的一种特殊的远程仓库,目的是代理远程仓库及部署第三方构件。有了私服之后,当 Maven 需要下载…...
营销型网站建设标准/北京网站优化策略
JDK的安装以及配置 JDK(Java Development Kit),顾名思义,是 Java 语言的软件开发工具包(SDK)。 Android发开使用Java语言,所以装JDK是Android开发的基础,必须安装。 JDK下载 官方地址:http://www.oracle.com/technetwork/java/jav…...
![](/images/no-images.jpg)
做一个app需要多少钱一个/博客seo怎么做
#include <stdio.h> #include <stdlib.h> #include<time.h> #define OK 1 #define ERROR 0 #define TRUE 1 #define FALSE 0#define MAXSIZE 20 /* 存储空间初始分配量 */ typedef int ElemType; /* ElemType类型根据实际情况而定,这里假设为in…...
![](/images/no-images.jpg)
海口做网站哪家好/广东新闻今日最新闻
目录 vue项目移动端、PC端适配方案 一、第一步先安装 flexible和 postcss-px2rem(命令行安装) 二、引入lib-flexible 三、修改lib-flexible源码 四、配置postcss-px2rem 五、注意事项 vue项目移动端、PC端适配方案 vue项目移动端、pc端适配方案 l…...