c语言date
Ⅰ 详细讲解c语言五大内存分区与可执行程序的三段(Text段、Date段、Bss段)【建议收藏】
本文详细讲解C语言五大内存分区与可执行程序的三段(Text段、Data段、Bss段)。
首先,C语言五大内存分区包括:静态内存、动态内存、栈内存、堆内存和文件I/O内存。静态内存用于存储全局变量和静态变量,动态内存由new和malloc函数分配,栈内存用于函数调用时的局部变量和函数参数,堆内存用于动态分配和管理,文件I/O内存用于文件读写操作。
其次,可执行程序的三段分别为:Text段、Data段、Bss段。Text段存储了程序的机器代码,Data段存储了程序的全局变量和静态变量的初始值,Bss段用于存放未初始化的全局变量和静态变量。Text段和Data段是只读的,而Bss段是可读可写的。
在可执行程序内存空间与逻辑地址空间的映射与划分上,执行文件通常被映射到进程的逻辑地址空间中。执行文件的文本、数据和Bss段分别映射到进程的文本、数据和Bss段。
接着,存储类型关键字定义了变量的存储类型,如static、extern、auto和register。这影响了变量的作用域和生命周期。静态变量在全局或文件级作用域中,其生命周期在程序运行期间一直存在;外部变量在文件级作用域中,其值在程序运行期间始终存在;自动变量在函数作用域中,其值在函数调用结束后释放;寄存器变量在函数调用期间使用,以提高执行效率。
在堆与栈的区别上,堆和栈在申请方式、申请后的系统响应、申请大小限制、申请效率、存储内容以及存取效率上有所不同。在运行时刻赋值的变量通常在堆中分配,而编译时已经确定的变量通常在栈中分配。在存取效率上,栈上的数组比指针指向的字符串更快。
Ⅱ c语言给一个日期求星期几
#include<stdio.h>
voidmain(){
intdate;
charweek[7][3]={"六","天","一","二","三","四","五"};
scanf("%d",&date);
if(date>=1&&date<=30)
{
date-=11;
while(date<0)date+=7;
printf("星期%s",week[date%7]);
}
elseprintf("输入日期有误!");
}
//运行示例:
Ⅲ 关于C语言中内置宏__DATE__和 __TIME__
这两个就是字符串常量,当字符串用就行。
__DATE__:当前的编译日期
__TIME__:当前编译时间;
#include<stdio.h>
#include<string.h>
intmain()
{
printf("%s,%s
",__DATE__,__TIME__);
printf("长度DATE=%d,TIME=%d
",strlen(__DATE__),strlen(__TIME__));
return0;
}