Recently, I’ve been experimenting with a few development-related tools that can be considered artifacts. As the saying goes, “A workman must sharpen his tools before he can work well.” I’ll take some time to organize and write about it.
Use VisualGDB to write Linux programs on VS
As a C++ developer and Linux user, I often write code on Linux. Recently, I discovered VisualGDB (a VS plugin), which is a fantastic tool that allows me to write and run programs directly on Linux from Windows! The debugging experience is even better!
Deploy shadowsocks service on VPS
In the past few days, I helped a colleague set up a VPS for proxy use and organized some related materials along the way. This article is not aimed at beginners. Before reading the following content, you should first have a VPS that can access the external network (foreign network), and secondly, you should have some basic knowledge of Linux operations.
Some books and tools for learning C/C++
From the time I began learning C language to now, it has been five or six years, during which I have read quite a few good and bad books, tried many tools (the holy war of compilers/editors), and here I will summarize everything in detail. After messing around for a long time, I have come to a kind of thought, which is different from the “take-it-for-granted” mindset; it is an experience of “doing it yourself.”
2016: Future Plans
It’s hard to believe that I will soon graduate from university. Although I have learned (and struggled with) quite a lot during my time at university, I still feel that I need to improve and keep working hard.
I have a few thoughts about the future, and I will write them down at this moment to motivate myself.
Talk about the college entrance examination
These days are the time for the college entrance examination, and it reminds me of a few years ago when I took the exam. Back then, I was still too young, thinking that if I had something I wanted to pursue, I should go for it, wasting a lot of time learning programming. But looking back now, it’s important to study hard in high school, as a degree is indeed a threshold for just graduating.
Pthread multithreaded programming
POSIX Threads (English: POSIX Threads, commonly abbreviated as Pthreads) is the POSIX thread standard that defines a set of APIs for creating and manipulating threads.
Memory leak caused by deleting void* pointer
When a void*
points to a class object, performing a delete
operation on it will lead to undefined behavior—it is certain that this delete
operation will not call the object’s destructor, resulting in a memory leak.
Memory alignment problem of structure members
Before discussing memory alignment, let’s first introduce a related concept—offset.
The distance between the actual address of a storage unit and the segment address where it is located is called the intra-segment offset, also known as the “effective address or offset.”
In simple terms, in a structure, the offset refers to the difference between the address of a member in a structure variable and the address of the structure.
C language does not have a native bool type
It seems a bit clickbaity; to be precise, there is no bool
keyword in the C language standard to represent boolean types. In C++, we usually use bool
variables to store logical values. However, there is no bool
type in C; C only has the _Bool
type. Today, when discussing this issue with someone, it can indeed be confusing, so I’m writing it down for future reference.