C的那点小事
1234567啦啦啦
C、Java
展开
-
extern "C"
(一)第一种理解 比如说你用C++开发了一个DLL库,为了能够让C语言也能够调用你的DLL输出(Export)的函数,你需要用extern “C”来强制编译器不要修改你的函数名。通常,在C语言的头文件中经常可以看到类似下面这种形式的代码: #ifdef __cplusplus extern "C" { #endif /**** some declaration or so *****/转载 2016-08-17 15:03:39 · 347 阅读 · 0 评论 -
函数指针与指针函数
原创 2019-02-01 15:29:05 · 131 阅读 · 0 评论 -
C语言链表(一)
在这里插入代码片#include <stdio.h>#include <string.h> #include <stdlib.h>typedef struct DListElement_{ void *data; int num; struct DListElement_ *ahead;原创 2019-01-31 13:56:17 · 396 阅读 · 0 评论 -
结构体与typedef
typedef struct POINT { ... ... }POINT_T, *POINT_P; POINT为结构名,这个名字主要是为了在结构体中包含自己为成员变量的时候有用...原创 2018-12-05 11:36:07 · 236 阅读 · 0 评论 -
#ifdef与#if
代码中经常看到诸如#ifdef,#ifndef,#if,#if!的语句,这种条件判断起选择程序块执行的重要作用,现通过一个小程序总结如下:#include <stdio.h>#define TEST_DEFINBE 1void fun1(){ #if !TEST_DEFINBE //该宏没有定义与宏值定义为 0的执行结果是一样的 printf("if...原创 2018-08-07 15:23:13 · 3813 阅读 · 0 评论 -
C语言判断日期有效性以及根据年月日输出星期几
#include #include // 历史上的某一天是星期几?未来的某一天是星期几?//关于这个问题,最著名的计算公式是蔡勒(Zeller)公式。即w=y+[y/4]+[c/4]-2c+[26(m+1)/10]+d-1//// output: w: 0 - Sunday;//原创 2018-01-06 10:03:25 · 10539 阅读 · 0 评论 -
断言--assert
1. 要点: (1)assert语句 assert(表达式1); //表达式=0,那么它先向stderr打印一条出错信息,然后通过调用 abort 来终止程序运行。示例: #include <stdio.h> #include <assert.h> #include <stdlib.h>int main( void ){ int i = 0; assert(i); p原创 2018-01-04 10:15:20 · 282 阅读 · 0 评论 -
C语言中负数的存储
C语言中负数是以补码的形式进行存储的。示例:负数-1, (此处,假设是8位二进制表示) 对应正数的原码:0000 0001; 取反: 1111 1110; 加1: 1111 1111; 最终,-1是以1111 1111的形式进行存储的。理论知识 计算机中的符号数有三种表示方法,即原码、反码和补码。三种表示方法均有符号位原创 2018-01-03 16:29:21 · 16989 阅读 · 0 评论 -
二维数组作形参
二维数组作形参(以二维数组int a[4][3]为例),且在函数调用中可以通过a[i][j]的方式获取二维数组中个各值,可以有两种方式:1. 使用二维数组作形参 void fun_test2(int ppArr_test[][3]); 或 void fun_test2(int ppArr_test[4][3])注: ①二者都是合法而且等价,但是不能把第二维或者更高维的大小省略,如下面的定义是原创 2017-10-17 14:57:30 · 7468 阅读 · 0 评论 -
atoi函数
【函数原型】int atoi (const char * str);【函数说明】 atoi() 函数会扫描参数 str 字符串,跳过前面的空白字符(例如空格,tab缩进等,可以通过 isspace() 函数来检测),直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时(‘\0’)才结束转换,并将结果返回。【代码示例】#include<stdio.h>#include "stdlib.原创 2017-07-03 11:37:03 · 362 阅读 · 0 评论 -
*p++ 和 (*p)++
分析 (*p)++,是先取指针P的值,然后对其值进行++运算; p++ 同 (p++),因为++的优先级相对较高:是先对指针P进行++运算,然后再取取值。示例#include<stdio.h>#include "stdlib.h"#include "stdint.h"uint8_t p[] = {"test"};int main(){ uint8_t* p_tmp = p;原创 2017-07-03 10:53:34 · 864 阅读 · 0 评论 -
C语言规范及编译器
一、规范 C 的第一个标准是由ANSI发布的。虽然这份文档后来被国际标准化组织(ISO)采纳并且ISO发布的修订版也被ANSI采纳了,但名称ANSI C(而不是 ISO C)仍被广泛使用。一些软件开发者使用ISO C,还有一些使用 Standard C。 C89 1983年,美国国家标准协会(ANSI)组成了一个委员会,X3J11,为了创立 C 语言的标准。经过漫长而艰苦的过程原创 2016-08-08 08:52:01 · 740 阅读 · 0 评论 -
C语言运算符优先级
优先级 运算符 名称或含义 使用形式 结合方向 说明 1 [] 数组下标 数组名[常量表达式] 左到右 -- () 圆括号 (表达式)/函数名(形参表) ...原创 2019-02-01 15:49:01 · 4067 阅读 · 0 评论