C
hg2016
这个作者很懒,什么都没留下…
展开
-
C语言编译过程--编译过程探索
gcc -S hello.c > hello.s可以看到 .s 文件比预处理后的 .e 文件小了很多hello.s文件全部内容如下: .file "hello.c" .text .section .rodata.LC0: .string "hello world" .text .globl main .type main, @functionmain:.LFB0: .cfi_startproc endbr64 pushq %rbp .cfi_def_cfa_offs原创 2022-01-23 11:58:50 · 277 阅读 · 0 评论 -
C语言编译过程--预处理探索
环境 Ubuntu21.04hello.c#include <stdio.h>#define HAHA 123int main(){ int i = HAHA; printf("hello world\n"); return 0;}通过下面的命令对hello.c文件进行预处理gcc -E hello.c > hello.e可以看到预处理后的文件 hello.e 的文件大小是 hello.c 的大概160倍因为文件太大,为了简单了解这个文件里面有什么内容,我原创 2022-01-23 11:40:58 · 532 阅读 · 0 评论 -
手工装载库
dlopen 手动打开一个库,RTLD_LAZY代表使用的时候再打开dlerror代表清楚errordlsysm代表从一个库中找某个符号,这里cos是一个函数,找到这个函数的符号的地址后就可以直接使用它了。原创 2022-01-23 10:20:32 · 294 阅读 · 0 评论 -
C语言学习
AE动画学习C语言PDF资料原创 2022-01-22 15:15:50 · 360 阅读 · 0 评论 -
程序员的自我修养
进程的内存布局其中,共享库指的是如果使用了c或c++的标准函数库中的函数,比如:printf,strlen。。。那么就会在这个位置将libc.so或libc++.so中相应的函数定义填进去。原创 2022-01-19 13:09:46 · 3710 阅读 · 0 评论 -
面试总结
前几天出去面试了一下,很简单的问题但是自己答得并不好,我是学电气专业的属于半路出家,面试官都问的很基础。今天终于下狠心来总结一下这次的面试,接下来会陆续推出两三篇博客重点解释这几个知识点,希望和大家一起提高自己。好了切入正题,先说一下被问到的知识点。面试官:1、自我介绍一下 2、先写一个strlen函数吧(面试官喜欢考基础,心里窃喜,刚复习过其实很简单)原创 2017-04-23 16:05:57 · 481 阅读 · 0 评论 -
浅谈为什么有反码和补码
背景知识: 正数 的原码,反码和补码都一样 负数的反码为符号位不变,其余位取反 负数的补码为它的反码+1计算机只会加法不会减法,所以两个数的减法可以看成一个正数加一个负数,如果运算时将符号位和数据位隔开单独运算,运算规则是十分复杂的。为了让减法计算更简单我们希望在计算时连同符号位一起运算。于是便有了反码,比如下面的运算1-1=【00000001】+【1原创 2017-08-18 11:47:45 · 1660 阅读 · 1 评论 -
C++内存分配的方式
前几天在线笔试的时候最后一道题就是问这个,但是自己只答了栈和堆,查了一下资料来补充一下: C++内存分配的方式有3种: 1.从静态存储区分配,程序在编译的时候就已经分配好了,并且在整个运行期间都存在,比如静态变量和全局变量。 ps:实际上静态变量和全局变量你如果不初始化,系统会自动帮你初始化为0。 2.在栈上创建,函数参数和内部原创 2017-09-13 17:05:32 · 864 阅读 · 0 评论