|
|
我用(sizeof(nums) / sizeof(nums[0]))这种方式计算数组长度,总是不对。求大神指点。
- int a = 3; //定义数字接口3 连接a 段数码管
- int b = 4; // 定义数字接口4 连接b 段数码管
- int c = 5; // 定义数字接口5 连接c 段数码管
- int d = 6; // 定义数字接口6 连接d 段数码管
- int e = 7; // 定义数字接口7 连接e 段数码管
- int f = 8; // 定义数字接口8 连接f 段数码管
- int g = 9; // 定义数字接口9 连接g 段数码管
- int dp = 2; // 定义数字接口2 连接dp 段数码管
- int one[] = {b, c};
- int two[] = {3, 4, 9, 6, 7};
- int three[] = {a, b, c, d, g};
- int four[] = {f, g, b, c};
- int five[] = {a, f, g, c, d};
- int six[] = {f, e, d, c, g};
- int seven[] = {a, b, c};
- int eight[] = {a, b, c, d, e, g, f};
- int nine[] = {a, b, c, d, f, g};
- void setup() {
- // put your setup code here, to run once:
- Serial.begin(9600);
- int i;//定义变量
- for (i = 2; i <= 9; i++) {
- pinMode(i, OUTPUT); //设置4~11 引脚为输出模式
- }
- }
- void loop() {
- // put your main code here, to run repeatedly:
- digitalWrite(dp, HIGH);
- display_smg(one , 2);
- delay(1000);
- display_smg(two , 5);
- delay(1000);
- display_smg(three , 5);
- delay(1000);
- display_smg(four , 4);
- delay(1000);
- display_smg(five , 5);
- delay(1000);
- display_smg(six , 5);
- delay(1000);
- display_smg(seven , 3);
- delay(1000);
- display_smg(eight , 7);
- delay(1000);
- display_smg(nine , 6);
- delay(1000);
- }
- void display_smg(int nums[], int len) {
- for (int i = 3; i <= 9; i++) {
- digitalWrite(i, LOW);
- }
- Serial. println((sizeof(nums) / sizeof(nums[0])));
- for (int i = 0; i < len; i++) {
- Serial. println(nums[i]);
- digitalWrite(nums[i], HIGH);
- }
- }
复制代码 还有我想定义一个二维数组类似这样- int all[][]={{one},{two}};
复制代码 编译不能通过,怎么修改?
另外能不能定义类一样的函数。我整过java,arduino这样写代码,总感觉很累{:soso_e154:} ,求指点
|
|