[置顶]关于博主

首先感谢各位通过域名52coder.net 52murong.com访问本站。52murong.com 慕蓉是我女朋友的名字,她也是一名程序员,现在访问该域与52coder.net均会打开本站。

52coder.net是很早之前与同学一起脑洞的域名:中文名可以叫做-我爱程序员。我记得那年冬天孟非主持的非诚勿扰很火,我信誓旦旦的说以后要做一个网站,专门去为程序员解决个人问题,于是就有了现在的这个域名52coder.net。当时比较热衷于论坛,折腾过Discuz,在读书时折腾过,最多的时候同时在线人数超过1000,论坛的注册人数达到了2w左右,现在却早已忘记当初因为什么原因关闭论坛。

博客开始......

gcc编译阶段

电话面试被问到一个很基础很底层的问题,可是一时间不知道如何回答,总结网上的相关内容并加以验证,如果针对文章内容有任何疑问,欢迎留言讨论。

gcc编译流程分为4个步骤,分别为:

预处理(Pre-Processing)

编译(compiling)

汇编(Assembling)

链接(Linking)

示例代码main.c

#include <stdio.h>

int ......

C经典面试题

本文将持续更新C经典面试题笔试题,短短的程序,却是大大的有意思。如果你针对文中内容有不同见解,欢迎留言评论.本文将会持续更新,记录有意思的题目。

以下程序的输出为:

#include <stdio.h>

int main()

{

float a=5.2;

if(a==5.2)

printf("equal");

else if(a < 5.2)

printf("less than");

else

printf("Great than");

return 0;

}

首先我们看知乎网友vczh的精彩回复:

......

红黑树

红黑树(英语:Red–black tree)是一种自平衡二叉查找树,是在计算机科学中用到的一种数据结构,典型的用途是实现关联数组。

红黑树是每个节点都带有颜色属性的二叉查找树,颜色为红色或黑色。在二叉查找树强制一般要求以外,对于任何有效的红黑树我们增加了如下的额外要求:

性质

1.节点是红色或黑色。

2.根是黑色。

3.所有叶子都是黑色(叶子是NIL节点)。

4.每个红色节点必须有两个黑色的子节点。(从每个叶子到根的所有路径上不能有两个连续的红色节点。)

5.从任一节点到其每个叶子的所有简单路径都包含相同数目的黑色节点。

下面是一个具体的红黑树的图例:

gdb调试进程线程

本文是学习100gdb-tips的总结内容,部分代码与原文不同,补充相关调试程序中遇到的问题与解决方法。

调试已运行的程序

thread.c

#include <stdio.h>

#include <unistd.h>

#include <pthread.h>

void *thread_func(void *p_arg)

{

while (1)

{

printf("%s\n", (char*)p_arg);

sleep(10);

}

}

int main(void)

{

pthread_t t1, t2;

pthread_c......

C语言特性C99介绍

本文将持续介绍C99中新增特性,由于工作环境在C89,因此学习C99中新增特性,本文将持续更新.

C99中的布尔值

C99提供了_Bool型,所以在这一版本中,布尔变量可以声明为_Bool flag;

除了_Bool类型的定义,C99还提供了一个新的头该头文件提供了bool宏,用来代表_Bool,同时还提供了true 和 false分别代码1和0.

示例程序:

#include <stdio.h>

int main()

{

_Bool flag = 0;

printf("%d\n",flag);

return 0;

}

输出0

#inc......

二叉搜索树

二叉查找树(英语:Binary Search Tree),也称二叉搜索树、有序二叉树(英语:ordered binary tree),排序二叉树(英语:sorted binary tree),是指一棵空树或者具有下列性质的二叉树:

若任意节点的左子树不空,则左子树上所有节点的值均小于它的根节点的值;

若任意节点的右子树不空,则右子树上所有节点的值均大于它的根节点的值;

任意节点的左、右子树也分别为二叉查找树;

没有键值相等的节点。

生产者消费者模型Linux C 实现

生产者消费者问题是同步问题中的一种常见情况,借用一下维基百科的话

生产者消费者问题(英语:Producer-consumer problem),也称有限缓冲问题(英语:Bounded-buffer problem),是一个多线程同步问题的经典案例。该问题描述了两个共享固定大小缓冲区的线程——即所谓的“生产者”和“消费者”——在实际运行时会发生的问题。生产者的主要作用是生成一定量的数据放到缓冲区中,然后重复此过程。与此同时,消费者也在缓冲区消耗这些数据。该问题的关键就是要保证生产者不会在缓冲区满时加入数据,消费者也不会在缓冲区中空时消耗数据。

信号量配合互斥锁实现

信号量:

信号......

[LeetCode C实现]14. Longest Common Prefix

Write a function to find the longest common prefix string amongst an array of strings.

If there is no common prefix, return an empty string "".

Example 1:

Input: ["flower","flow","flight"]

Output: "fl"

Example 2:

Input: ["dog&q......

[LeetCode C 实现]345. Reverse Vowels of a String

Write a function that takes a string as input and reverse only the vowels of a string.

Example 1:

Given s = "hello", return "holle".

Example 2:

Given s = "leetcode", return "leotcede".

Note:

The vowels does not include the letter "y".

......