zoukankan      html  css  js  c++  java
  • C语言基础

    1.static

      1.1在全局变量前加static关键字,使此全局变量局限在当前文件.

    2.const

    3.函数指针 指针函数

    函数指针是指向函数的指针变量,因而函数指针本身首先应是指针变量,只不过该指针变量指向函数。

    C在编译时,每一个函数都有一个入口地址,该入口地址就是函数指针所指向的地址。可用该指针变量调用函数。

    函数指针有两个用途:调用函数和做函数的参数。

    int func(int x); /* 声明一个函数 */   

    int (*f) (int x); /* 声明一个函数指针 */   

    f=func; /* 将func函数的首地址赋给指针f */

    函数名func代表函数的首地址。

    int max(int x, int y){ return (x>y?x:y);}

    定义函数指针类型:

    typedef int (*fun_ptr)(int,int); //fun_ptr 是返回值是int,参数类型为(int,int)的函数的指针。

    申明变量,赋值

    fun_ptr max_func=max;

    指针函数是返回值为指针的函数。

    上面的 int (*f) (int x); /* 声明一个函数指针 */ 引申,如果声明成 int* f(int x);应该就是指针函数了。

    const RIL_RadioFunctions *(*rilInit)(const struct RIL_Env *, int, char **);

    rilInit = (const RIL_RadioFunctions *(*)(const struct RIL_Env *, int, char **))dlsym(dlHandle, "RILCore_Init");

    4. dlopen()  dlsym()


    5.定义结构体类型 

    struct RIL_Env{

      int *p_request_cardID;
      void (*OnRequestComplete)(RIL_Token t, RIL_Errno e, void *response, size_t responselen);
      void (*OnUnsolicitedResponse)(int unsolResponse, const void *data, size_t datalen);
      void (*RequestTimedCallback) (RIL_TimedCallback callback, void *param, const struct timeval *relativeTime);
      void (*OnUnsolicitedResponseId)(int unsolResponse, const void *data, size_t datalen, int respCardId);

    }

    定义结构体变量

    static struct RIL_Env s_rilEnv = {
        &request_card_id_rild,
        RIL_onRequestComplete,
        RIL_onUnsolicitedResponse,
        RIL_requestTimedCallback,
        RIL_onUnsolicitedResponseId
    };

    6.pthread_attr_init pthread_attr_setdetachstate

    查看:http://zh.wikipedia.org/wiki/POSIX_Threads

    编译例子 gcc thread.c -o thread -lrt

    7. socket_local_client

    http://www.netmite.com/android/mydroid/system/core/libcutils/socket_local_client.c

    8. cfsetispeed

    http://book.51cto.com/art/200711/59758.htm

    9. getopt

    while(-1 != (opt = getopt(argc, argv, "p:d:s"))){

      switch(opt){

        case 'p'

          s_port = atoi(optarg);

          printf("s_port = %d", s_port);

          break;

      }

    }

  • 相关阅读:
    关于Java 下 Snappy压缩存文件
    英文分词和中文分词
    vuex requires a Promise polyfill in this browser
    Vue 中 export default 和 module.exports
    Linux 进程以及多线程的支持
    mysqldump
    linux磁 盘分区 挂载
    ubuntu16.04挂载windows NTFS磁盘方法
    Linux服务管理 systemctl命令详解
    nextcloud 安装
  • 原文地址:https://www.cnblogs.com/jimwind/p/1746238.html
Copyright © 2011-2022 走看看