嵌入式C语言基础代码总结

2、数据类型 、常量、变量和运算符

《ctype》

bool.c

#include <stdio.h>
#include <stdbool.h>

int main(int argc, char *argv[])
{
        _Bool a;
//        bool a;

        a = true;
        a = false;
        a = -1;
        if (a) {
                printf("true %d\n",a);
        }
        else {
                printf("false %d\n",a);
        }

        return 0;
}

char.c

#include <stdio.h>
#include <stdbool.h>

int main(int argc, char *argv[])
{
        unsigned char ch;

        ch = -1; 

        printf("ch=%d %c\n", ch, ch);


        return 0;
}

运行结果:在这里插入图片描述
float.c

#include <stdio.h>

int main(int argc, char *argv[])
{
        float a = 3.14;
        double b = 4.5;

        printf("%f %lf\n", a, b);

        return 0;
}

int.c
计算数据类型范围:

#include <stdio.h>
#include <limits.h>

int main(int argc, char *argv[])
{

        printf("%d %d %d %d\n", sizeof(_Bool), sizeof(char), sizeof(short), sizeof(int));;

        printf("char:%d-%d\n", SCHAR_MIN, SCHAR_MAX);
        printf("shor:%d-%d\n", SHRT_MIN, SHRT_MAX);
        printf("int:%d-%d\n", INT_MIN, INT_MAX);

        return 0;
}

type.c
数之和加强制类型转换

#include <stdio.h>
#include <limits.h>

int main(int argc, char *argv[])
{
        int a = 2, b = 3;
        float c = 3.14;
        int sum;

        sum = (int)(a + b + c);
        printf("%d\n", sum);

        return 0;
}

《ope》

assigndemo.c
1+2+3+…+100

#include <stdio.h>

int main(int argc, char *argv[])
{
        int n = 0, sum = 0;

        while (n++ < 100) {
                sum += n;
        }
        printf("sum=%d\n", sum);

        return 0;
}

bit1.c
位取非

#include <stdio.h>

int main(int argc, char *argv[])
{
        unsigned char x = 0x17, y;

        y = ~x;

        printf("%#x\n", y);

        return 0;
}

bit2.c
位与

#include <stdio.h>

int main(int argc, char *argv[])
{
        unsigned char x = 0126, y = 0xac, z;

        z = x & y;

        printf("%#x\n", z);

        return 0;
}

bit3.c
位左移

#include <stdio.h>

int main(int argc, char *argv[])
{
        unsigned char x = 0xe4, y = 1;

        printf("x=%#x,y=%#x\n", x, y);
        y = x << 3;
        printf("x=%#x,y=%#x\n", x, y);
        


        return 0;
}

bit4.c

#include <stdio.h>

int main(int argc, char *argv[])
{
        unsigned char x = 0x4, y = 1;

        printf("x=%#x,y=%#x\n", x, y);

        y = x << 1;
        printf("x=%#x,y=%#x\n", x, y);
        
        y = x << 2;
        printf("x=%#x,y=%#x\n", x, y);

        y = x << 3;
        printf("x=%#x,y=%#x\n", x, y);

        

bit5.c

#include <stdio.h>

int main(int argc, char *argv[])
{
        unsigned char x = 0x4, y = 2;
        
        x = x | (1 << (y-1));

        printf("x=%#x,y=%#x\n", x, y);

        return 0;
}

bit6.c
位运算混合

#include <stdio.h>

int main(int argc, char *argv[])
{
        unsigned char x = 0x14, y = 3;
        
        x = x & (~(1 << (y-1)));

        printf("x=%#x,y=%#x\n", x, y);

        return 0;
}

bit7.c

#include <stdio.h>

int main(int argc, char *argv[])
{
        int a = 65, b = 0;

        printf("%#x %d\n", a, a);

//        b = a / 16;
        b = a >> 4;
        printf("%#x %d\n", b, b);
        
        //b = a % 16;
        b = a & 0xf;
        printf("%#x %d\n", b, b);


 
        return 0;
}

demo1.c
算数运算符

int main(int argc, char *argv[])
{
        int a = 15, b = 8, c;

        c = a + b;
        printf("c = %d\n", c);

        c = a - b;
        printf("c = %d\n", c);

        c = a * b;
        printf("c = %d\n", c);

        c = a / b;
        printf("c = %d\n", c);

        c = a % b;
        printf("c = %d\n", c);

        return 0;
}

demo2.c


int main(int argc, char *argv[])
{
        float a = 15, b = 8, c;

        c = a + b;
        printf("c = %f\n", c);

        c = a - b;
        printf("c = %f\n", c);

        c = a * b;
        printf("c = %f\n", c);

        c = a / b;
        printf("c = %f\n", c);

//        c = a % b;
//        printf("c = %f\n", c); error

        return 0;
}

demo3.c

#include <stdio.h>

int main(int argc, char *argv[])
{
        int a = 8, b = 7;

        //if (!(a - b) == 7) 
        if (!((a - b) == 7)) 
                printf("true\n");
        else 
                printf("false\n");

        return 0;
}

demo4.c

#include <stdio.h>

int main(int argc, char *argv[])
{
        int a = 8, b = 7, c = 0;

        //if ((a - 1) <= b && b++ && a++)
        if ((a - 1) < b && b++ && a++)
                printf("true:%d %d %d\n", a, b, c);
        else 
                printf("false:%d %d %d\n", a, b, c);

        return 0;
}

demo5.c

#include <stdio.h>

int main(int argc, char *argv[])
{
        int a = 5, b = 18, c = 0;

        //if ((a - 1) <= b && b++ && a++)
        if ((a - 5) > 0 || b != 8)
                printf("true:%d %d %d\n", a, b, c);
        else 
                printf("false:%d %d %d\n", a, b, c);

        return 0;
}

demo6.c

#include <stdio.h>

int main(int argc, char *argv[])
{
        int x = 70, y = 10;

        //y = x++ > 70 ? x + y : 5;
        y = ++x > 70 ? x + y : 5;

        printf("x=%d y = %d\n", x, y);

        return 0;
}

demo7.c

#include <stdio.h>

int main(int argc, char *argv[])
{
        float x = 10.5, y = 1.8, z;

        z = (x += 5, y++, x + y);

        printf("x=%f y=%f z=%f\n", x, y, z);

        return 0;
}

priority.c

#include <stdio.h>

int main(int argc, char *argv[])
{
        int x = 1, y = 0, z = 0;

//        if (x++ && y++ || ++z)
        if (!(x+1)>0 && y++ || ++z)
                printf("true:%d %d %d\n", x, y, z);
        else 
                printf("false:%d %d %d\n", x, y, z);

        return 0;
}

sizeof.c

#include <stdio.h>

int main(int argc, char *argv[])
{
        int a = 5;
        long b = 3;
        long long c = 9;

        printf("%d %d %d\n", sizeof(a), sizeof(b), sizeof(c));
        printf("%d %d %d\n", sizeof(int), sizeof(long), sizeof(long long));

        return 0;
}

《var_v1》

auto.c

#include <stdio.h>

void fun() 
{
        auto int a = 1, i;
        for (i = 0; i < 5; i++) {
                a++;
                printf("a=%d\n", a);
        }
}

int main(int argc, char *argv[])
{
        fun();
        //printf("a=%d\n", a);

        /*
        int i;

        for (i = 0; i < 5; i++) {
                auto int a = 1;
                a++;
                printf("a=%d\n", a);
        }
        //printf("a=%d\n", a);

        */
        return 0;
}

part1.c

int global_a = 100;
int global_b = 200;

par2.c

#include <stdio.h>

extern int global_a;
extern int global_b;

int main(int argc, char *argv[])
{
        printf("%d\n", global_a);
        printf("%d\n", global_b);

        return 0;
}

register.c

#include <stdio.h>

int main(int argc, char *argv[])
{
        register int a;

        //int * p = &a;

        return 0;
}

static.c

#include <stdio.h>

int global_a;

void fun() 
{
        int i;

        for (i = 0; i < 5; i++) {
                static int a;
                //int a = 0;        
                a++;
                global_a++;
                printf("a=%d global_a=%d\n", a, global_a);
        }
}

int main(int argc, char *argv[])
{
        fun();
        fun();
        fun();

        return 0;
}

water.c

#include <stdio.h>

#define W 3.0e-23
#define C 950

int main(int argc, char *argv[])
{
        float n;

        printf("input n:");
        scanf("%f", &n);


        n = n * C / W;
        printf("%f %e\n", n, n);


        return 0;
}

《variable》
demo1.c

#include <stdio.h>

int main(int argc, char *argv[])
{
        if (1) {
                int a;

                printf("a=%d\n", a);
        }
//        printf("out if:a=%d\n", a);

        return 0;
}

demo2.c

#include <stdio.h>

int main(int argc, char *argv[])
{
        register int a = 10;

        //printf("out if:a=%d %p\n", a, &a);

        return 0;
}

extern_static.c
//static int global_a = 100;
static int global_a = 100;

extern_static.c

#include <stdio.h>

extern int global_a;

int main(int argc, char *argv[])
{
        printf("global_a=%d\n", global_a);

        return 0;
}

static.c

#include <stdio.h>

int main(int argc, char *argv[])
{
        int i = 1;

        while (i < 5) {
//                int a = 0;
                static int a = 5;
                a++;
                printf("a=%d\n", a);
                i++;
        }


        return 0;
}

water.c

#include <stdio.h>

#define W 3.0e-23
#define C 950

int main(int argc, char *argv[])
{
        float n, total;

        printf("please input:");
        scanf("%f", &n);

        total = n * C / W;

        printf("%e\n", total);

        return 0;
}

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值