
编译型语言笔记
蛋炒鸡丁小饭团
一位喜欢研究计算机安全的灰帽子,GitHub不会展示更具体的仓库。
展开
-
【Linux】编写Java代码
默认你已经配置好java环境。原创 2022-12-21 23:39:33 · 384 阅读 · 0 评论 -
【C/C++】教你完整读取大文件数据
以前对C语言与C++不够了解时,我无法知道如何完整获取一个文件的所有数据并且不遗漏掉。在网络上也搜索了很多很多的相关帖子,但是没有一个是真正有用的。原创 2022-09-11 12:41:37 · 5520 阅读 · 6 评论 -
【C语言指针】用指针提升数组的运算效率
指针对于整个大项目的效率提升是非常明显的,请不要忽视这个非常棒的C语言功能。原创 2022-07-30 09:12:14 · 634 阅读 · 0 评论 -
【C/C++】fread函数与C语言基础的一些讲解
我想实现一个功能,就是打开一个文件,然后按照某个特定的区块来读取它,将每个区块加密之后再写入到另一个文件中。但很快,我发现了一个问题,fread函数似乎没办法正常完整读取文件?以下是我的源代码主要部分0};FILE*fp=fopen("文件名","rb");do{}while(!文件的原内容是这样的经过上面的代码之后,输出结果是这样的。看起来就像是文件并没有被完整读取或者很好的读取,是fread函数的问题吗?...原创 2022-07-19 09:33:46 · 1942 阅读 · 0 评论 -
malloc和calloc的用法与区别【C/C++】
以下代码均运行在x64环境中目录callocmalloc区别callocvoid *calloc(size_t _NumOfElements, size_t _SizeOfElements)上面是calloc函数的原型,其中_NumOfElements 代表需要申请的内存空间长度_SizeOfElements 代表长度中单个元素的大小可能不是特别好理解这段话,下面可以通过一个简单实例来查看。char *str = (char *)calloc(32, sizeof(char *));.原创 2022-03-13 13:14:16 · 651 阅读 · 0 评论 -
C/C++ 获取数字(整数)长度(位数)
#include <stdint.h>// 这是一个数字,长度为 3.uint32_t num = 255;在某些情况下我们需要获取一个数字的长度,但是又碍于C/C++中没有现成的函数。那就自己写一个。uint64_t numlen(uint64_t num){ uint64_t len = 0; // 初始长度为0 for(; num > 0; ++len) // 判断num是否大于0,否则长度+1 num /= 10原创 2022-03-12 23:17:07 · 29130 阅读 · 2 评论 -
学习C语言 - 推荐书籍
前言可能有些人和我一样,学完某些机构写的《C语言 从入门到精通》之后感觉自己并没有掌握什么实际的知识,不过就是摸到了C语言的皮毛,确实,那些机构基本也写不出什么深度的东西,还是得看大神们的书籍。避免抄袭嫌疑,此处贴出声明,前五本书的描述使用的是此篇文章的。C语言之父:我创造了C语言,但这些书帮我表达了出来排名不分前后《The C Programming Language (2nd Edition)》作者Brian W. Kernighan与Dennis M. Ritchie(C语言之原创 2022-02-17 21:45:16 · 1823 阅读 · 1 评论 -
gcc/g++编译后程序丢失.dll
前言一般情况下,gcc或者g++是动态链接库文件的,所以就会导致将程序移动到其他计算机上时报dll丢失的警告。目前解决方案有两个方法1将对应的dll文件放置在目标计算机对应的目录下,比如程序当前的目录或者System32目录方法2使用静态链接,简单点说就是把需要的库直接嵌入程序中,不过这样也会导致程序大小比动态链接时要大一些g++ demo.cpp -static -o demo.exe...原创 2021-12-19 21:42:11 · 934 阅读 · 0 评论 -
C/C++ 【获取数组长度】
万能的语句此行代码可获取整型数组与字符数组的长度,且同时支持是否设置初始长度size_t Length=sizeof(array)/sizeof(array[0]);C++有另外一个获取字符数组长度的方法(只能获取字符数组长度)#include <string.h>int Length=strlen(array);...原创 2021-12-14 13:46:03 · 1537 阅读 · 0 评论 -
gcc/g++编译时找不到自定义头文件
前言注意C/C++的在编写方面的严格控制解决方法 - 1不在同一目录下,自然无法载入,将头文件放入工程文件的同一目录下解决方法 - 2头文件载入的写法错误#include <> // 是用来载入libc库中的头文件的,一般不会在当前目录查询有无对应名称的头文件#include "" // 是用来载入自己编写或者不在libc库中的头文件的。// 所以,只需要将你的代码中载入头文件的符号改一下就行Python用多了,总是容易忽略C/C++的这些细节问题.原创 2021-12-10 11:10:14 · 5061 阅读 · 0 评论 -
【Linux】g++ 段错误
前言写了一个函数,总共两个函数,一个主函数,一个自己写的函数g++编译后,运行发现段错误,搜了下没搜到什么有用的,就自己修改了一下代码,再次编译执行,好了先看看出问题的代码#include<stdio.h>#include<stdlib.h>#include<string.h>#include<string>#include<cstring>#include<istream>#include<fstream原创 2021-12-09 21:10:04 · 571 阅读 · 0 评论 -
【C++】完整获取数组长度【一行代码】
前言最近Python玩厌了,回去玩了会C++,然后在统计数组长度的时候各种出意外。众所周知,在C/C++中\x00是作为结束符的一个存在,不像Python即使有\x00也不影响获取长度这就导致写了个内容,但程序读取长度时读取不完整(因为在\x00处就停止读取了)我在网上搜了半天,Google也找了,没用。我自己琢磨了一会,弄好了。下面是正确姿势#include<iostream>#include <istream>using namespace std;in原创 2021-12-07 13:25:28 · 668 阅读 · 0 评论 -
【C/C++ Socket】collect2.exe: error: ld returned 1 exit status
检查头文件载入部分加上 #pragma comment(lib, "ws2_32.lib")#include <winsock2.h>#include <iostream>#include <cstring>#pragma comment(lib, "ws2_32.lib") //加上这个或者编译时加一个参数g++ demo.cpp -o demo.exe -lwsock32gcc demo.c -o demo.exe -lwsock32原创 2021-12-01 13:16:32 · 786 阅读 · 0 评论