
C/C#/C++
C语言学习
Lei W.
软硬通吃
展开
-
如何用C#做一个简单的UDP协议聊天软件
一款基于Udp协议的聊天软件 by C# WinFormInformation:最近在学计算机网络,学到了TCP协议和UDP协议,这里具体就不说这两个协议了,主要讲讲如何通过C#Winform来写一个聊天程序,用实践来加深理论。由于学习时间的安排,我分阶段实现这个程序的功能。TCP和UDP的实现都差不多,都是用的套接字,所以我就只介绍UDP的了MyTask:OneChat taskSimple UIWinform窗体搭建实现UDP通信UDP Send dataUDP Rece原创 2020-06-13 21:50:43 · 1237 阅读 · 0 评论 -
gcc程序的编译过程和链接原理
GCC编译过程及链接原理1.预处理处理头文件预处理就是将要包含(include)的文件插入原文件中、将宏定义展开、根据条件编译命令选择要使用的代码,最后将这些代码输出到一个“.i”文件中等待进一步处理。gcc -E -o 001.i 001.c 2.编译编译就是把C/C++代码(比如上面的".i"文件)“翻译”成汇编代码gcc -S -o 001.s 001.i3.汇编汇编就是将第二步输出的汇编代码翻译成符合一定格式的机器代码,在Linux系统上一般表现位ELF目标文件(OBJ文件)原创 2021-01-07 13:06:04 · 226 阅读 · 0 评论 -
嵌入式C语言最常见的面试题
C语言常见面试题1.用预处理指令#define声明一个常数,用以表明一年中有多少秒(忽略闰年问题)#define SECOND_OF_YEAR 123456#define SECOND_OF_YEAR (365*24*3600)UL2.数据声明用变里a给出下面的定义a)一个整型数(An integer) int a; b)一个指向整型数的指针(A pointer to an integer) int *p;c)一个指向指针的的指针,它指向的指针是指向一个整型数(原创 2021-01-07 13:09:43 · 471 阅读 · 0 评论 -
位运算
位运算设置一个资源的bit5为高电平,其他位不变int a;a = (a|(0x1<<5)); //a = (a|(0x1<<n));设置一个资源的bit5为低电平,其他位不变int a;a = (a&~(0x1<<5)); //a = (a&~(0x1<<n));异或运算不引入第三个变量进行数据交换#include <stdio.h>int mian(void){ int a =原创 2021-01-07 13:08:40 · 745 阅读 · 0 评论 -
指针+修饰符
指针+修饰符:char *p; //const隔char更近,说明修饰的是指针指向的内容const char *p; 指针可变,指向内容不可变char const*p;//const隔指针变量p更近,说明修饰的是指针本身char * const p; 指针本身不可变,指向的内容char *p const:const char * const p; 地址和内容都不可以变...原创 2021-01-07 13:07:21 · 271 阅读 · 0 评论 -
C语言中共用体的理解
C语言中的union要想理解union,把下面这段代码运行结果搞懂即可/* * 1.共用体的成员共用同一个地址 * 2.成员变量类型中占用内存最大的变量所占用的内存为共用体所占用的内存 * 3.共用体成员初始化时只有最后一次成员初始化才会有效 */#include <stdio.h>#include <string.h>union U{ int a; float b; char s[10];};int main(){ /*共用体内存占用大小*/原创 2021-01-14 12:06:54 · 408 阅读 · 0 评论 -
C语言中结构体成员变量前的点的作用
/** 结构体中成员变量前的点: 结构体成员指定初始化* 1.该结构体要先定义* 2.一个成员变量赋值完后用逗号而不是分号*3.初始化语句的元素以固定的顺序出现,和被初始化的数组或结构体中的元素顺序一样* 这样可以不用按顺序初始化*4.C99才开始支持的*///验证代码如下:#include "stdio.h"struct stude...原创 2018-12-01 17:21:07 · 8827 阅读 · 0 评论