C语言基础之存储类型关键字

1、auto:自动变量,由编译器自动分配释放,通常在栈上分配;

2、register:寄存器变量,建议将寄存器存储到变量中使用;

3、volatile:CV特性中的一员,指定的变量的值不可被当前进程或者线程所改变,但是指定变量的值有可能会被系统或者其他进程改变;

4、extern:指定对应变量为外部变量(全局变量),范围为整个工程中的所有文件可用,extern 引用全局变量主要起声明变量或函数的作用,主要作用是可以在同一工程下的一个文件中引用另一个文件中的变量或者函数;

例子如下main.c文件中引用b.c文件中的num变量。

main.c
#include<stdio.h>
int main()
{
    extern int num;
    printf("%d",num);
    return 0;
}

b.c
#include<stdio.h>
int num = 5;
void func()
{
    printf("fun in a.c");
}

注意:只有当一个变量是一个全局变量时,extern变量才会起作用;

        extern 表明该变量在别的地方已经定义过了,在这里要使用那个变量;

        extern关键字只需要指明类型和变量名就行了,不能再重新赋值。

         extern int num=4;错误写法

5、const:CV特性中的另一位成员,在声明中使用所修饰的对象为常量,不能够被修改,存在常量区。

const它的作用是限定一个变量不允许被改变,只拥有只读功能。

const是给系统看,让系统不要改变我的值。

const也是给程序员看,让程序员看这里为什么要用const,到底能不能改这个值

 6、static:静态变量有规定作用域/静态存储的作用

        规定作用域:对于工程内的全局变量,以文件划分只对当前的文件可见;

        静态存储:调用结束后存储空间不释放;

   static可以修饰变量(全局变量、局部变量),存储在静态数据区

          全局变量:使得其作用域仅限在被定义的文件中,其他文件没有访问权限;

          局部变量:在某个函数体内定义的局部变量,只能在整个函数体内部访问;函数运行结束静态局部变量不会被销毁,存储空间不释放;

     static修饰函数:被称为静态函数/内部函数

                用来表示不能被其他文件访问的函数,但是可以通过嵌套的办法调用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在C语言文件中查找关键字的位置,可以按照以下步骤进行: 1. 打开文件,读取文件内容。 2. 使用字符串搜索函数(如strstr)在文件内容中查找关键字出现的位置。 3. 如果找到了关键字,可以使用文件指针的偏移量计算出关键字在文件中的位置。 以下是一个简单的示例代码,用于在文件中查找关键字的位置: ```c #include <stdio.h> #include <string.h> int main() { char keyword[100] = "int"; // 要查找的关键字 char filename[100] = "test.c"; // 文件名 FILE* fp = fopen(filename, "r"); // 打开文件 char line[1000]; // 用于存储每行文件内容 int line_num = 0; // 记录当前行数 int found = 0; // 标记是否找到了关键字 if (fp == NULL) { printf("Failed to open file %s\n", filename); return 1; } // 逐行读取文件内容 while (fgets(line, sizeof(line), fp)) { line_num++; if (strstr(line, keyword) != NULL) { // 如果找到了关键字 found = 1; int offset = ftell(fp) - strlen(line); // 计算关键字在文件中的位置 printf("Keyword \"%s\" found in line %d, offset %d\n", keyword, line_num, offset); } } if (!found) { printf("Keyword \"%s\" not found in file %s\n", keyword, filename); } fclose(fp); // 关闭文件 return 0; } ``` 该代码使用fgets函数逐行读取文件内容,然后使用strstr函数在每行内容中查找关键字。如果找到了关键字,则使用ftell函数计算出关键字在文件中的位置。注意,该代码仅适用于在ASCII编码的文本文件中查找关键字,对于其他类型的文件可能需要采用不同的方法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值