谷动谷力

标题: 内核开发中C语言技巧 [打印本页]

作者: 谷谷小师妹    时间: 2023-9-6 13:44
标题: 内核开发中C语言技巧
内核开发中C语言技巧
介绍






static变量
static函数
inline函数
函数指针
  1. const struct inode_operations ext4_dir_inode_operations = {
  2.         .create                = ext4_create,
  3.         .lookup                = ext4_lookup,
  4.         .link                = ext4_link,
  5.         .unlink                = ext4_unlink,
  6.         .symlink        = ext4_symlink,
  7.         .mkdir                = ext4_mkdir,
  8.         .rmdir                = ext4_rmdir,
  9.         .mknod                = ext4_mknod,
  10.         .tmpfile        = ext4_tmpfile,
  11.         .rename                = ext4_rename2,
  12.         .setattr        = ext4_setattr,
  13.         .getattr        = ext4_getattr,
  14.         .listxattr        = ext4_listxattr,
  15.         .get_acl        = ext4_get_acl,
  16.         .set_acl        = ext4_set_acl,
  17.         .fiemap         = ext4_fiemap,
  18.         .fileattr_get        = ext4_fileattr_get,
  19.         .fileattr_set        = ext4_fileattr_set,
  20. };
复制代码



  1. void qsort(void *base, size_t nitems, size_t size, int (*compar)(const void *, const void*);

  2. void *bsearch( const void *key, const void *array, size_t n, size_t size,
  3.                int (*compare)(const void *, const void *));
复制代码



双重指针





内核开发中C语言技巧
  1. int main(int argc, char **argv)
  2. {
  3.         // todo
  4. }
复制代码


  1. // 函数执行完毕后,修改的是ptr的副本,ptr自身没有修改
  2. void self_malloc(int *ptr){
  3.    ptr = malloc(1);
  4. }
复制代码
  1. // 这样修改的是双重指针指针的内容,函数执行完毕后*ptr得到的是malloc的内存地址
  2. void self_malloc2(int **ptr){
  3.    *ptr = malloc(1);
  4. }
复制代码







欢迎光临 谷动谷力 (http://bbs.sunsili.com/) Powered by Discuz! X3.2