码迷,mamicode.com
首页 > 编程语言 > 详细

Cocos2d-x 系列二之C语言

时间:2014-05-12 11:00:51      阅读:341      评论:0      收藏:0      [点我收藏+]

标签:style   blog   class   code   java   c   

1.宏定义
<1>.常量定义

bubuko.com,布布扣
#define MATH_PI 3.14

void defineH() {
    // 宏在编译阶段就把宏对应的常量给替换了,所以很快;
    printf("%f", MATH_PI);
}
bubuko.com,布布扣

<2>.方法定义

bubuko.com,布布扣
// 定义宏方法,宏方法没有具体的返回类型;当多行的时候,在后面添加一个反斜杠;
#define MAX(A,B) {\
     A>B?A:B }
bubuko.com,布布扣

调用:MAX(12,30);

2.结构体
<1>.结构体定义

bubuko.com,布布扣
struct People {
    int age;
    char *name;
};
bubuko.com,布布扣

使用:

bubuko.com,布布扣
    struct People p;
    p.age = 12;
    printf("%d", p.age);
bubuko.com,布布扣

<2>.结构体指针

bubuko.com,布布扣
/**
 * 需要引入stdlib.h
 */
void structpointer() {
    // 声明一个People指针(需要初始化)并且分配一个内存地址,内存大小为结构体People的大小
    struct People *p = malloc(sizeof(struct People));
    p->age = 20;
    p->name = "ls";
    struct People *p1 = p;
    p1->name = "ls1";
    printf("hello struct People %s", p->name); // 输出结果为ls1
    // 使用malloc分配的指针在不需要使用之后需要释放
    free(p);
}
bubuko.com,布布扣

3.函数指针

bubuko.com,布布扣
/**
 * 函数指针
 */
void functionpointer(int i) {
    printf("hello functionpointer %d \n", i);
}
int functionpointer1() { printf("hello functionpointer1 \n"); return 0; }
void functionpointerexe() { void (*p)(int); p = functionpointer; p(34); int (*a)(); a = functionpointer1; a(); }
bubuko.com,布布扣

4.typedef关键字
<1>.定义结构体

bubuko.com,布布扣
typedef struct {
    int age;
} P1;
bubuko.com,布布扣

通过typedef定义之后,在申明P1 struct的时候就不再需要在前面加struct关键字了;

bubuko.com,布布扣
    P1 p;
    p.age = 12;
    printf("%d", p.age);
bubuko.com,布布扣

<2>.定义函数指针

bubuko.com,布布扣
typedef int (*Void)();
bubuko.com,布布扣
bubuko.com,布布扣
Void v = functionpointer1;
v(); // 输出functionpointer1
bubuko.com,布布扣

5.引入自定义头文件

hello.h

bubuko.com,布布扣
// 如果没有定义HELLO_H_,则定义HELLO_H_,是为了防止头文件重复;
#ifndef HELLO_H_
#define HELLO_H_

void sayHello();

#endif /* HELLO_H_ */
bubuko.com,布布扣

hello.c

bubuko.com,布布扣
#include <stdio.h>
// hello.h中sayHello具体实现
void sayHello() {
    printf("hello c");
}
bubuko.com,布布扣

main.c

bubuko.com,布布扣
#include "hello.h"

int main(int argc, const char * argv[]) {
    sayHello();
}
bubuko.com,布布扣

6.文件操作

read:

bubuko.com,布布扣
void fileRead1() {
    FILE * f = fopen("xx.txt", "r");
    fseek(f, 0, SEEK_END); // seek到文件末尾:获取文件大小
    long size = ftell(f); // 返回文件大小
    char buf[size + 1];
    fseek(f, 0, SEEK_SET); // 重新回到文件开始
    fread(buf, sizeof(unsigned char), size, f);
    buf[size] = \0;
    fclose(f);
    printf("%s", buf);
}
bubuko.com,布布扣

write:

bubuko.com,布布扣
void fileWrite1() {
    // f可能为空,需要进行判断!
    FILE * f = fopen("xx.txt", "w");
    fprintf(f, "hello c");
    fclose(f);
}
bubuko.com,布布扣

7.其他

<1>.生成随机数:

bubuko.com,布布扣
    srand((int) time(NULL ));
    int randNum = rand();
    printf("%d,", randNum);
    return 0;
bubuko.com,布布扣

<2>.字符串操作:

bubuko.com,布布扣
    char buf[100];
    memset(buf, 0, 100); // 
    sprintf(buf, "hello c %d s%f,", 12, 23.2);
    printf("%s", buf);
bubuko.com,布布扣

<3>.输入输出:

bubuko.com,布布扣
void getput() {
    char buf[100];
    gets(buf); // 等待用户输入
    puts(buf);
}

int scanprint() {
    int a;
    scanf("%d", &a);
    printf("%d", a);
    return 0;
}
bubuko.com,布布扣

 

Cocos2d-x 系列二之C语言,布布扣,bubuko.com

Cocos2d-x 系列二之C语言

标签:style   blog   class   code   java   c   

原文地址:http://www.cnblogs.com/a284628487/p/3720516.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!