实现补码转int函数
用宏实现SIZEOF
#include <bits/stdc++.h>
using namespace std;
int num(vector<int> input) {
int flag = 0;
int value = 0;
int len = input.size();
if (len != 32) return -1;
if (input[0] == 0) {
flag = 0;
for (int i = 1; i < 32; i++) {
value = 2 * value + input[i];
}
}
else {
for (int i = 1; i < 32; i++) {
value = 2 * value + (1 - input[i]);
}
value++;
flag = 1;
}
if (flag) value = -value;
// if (value < INT_MIN || value > INT_MAX) return -1;
return (int)value;
}
#define SIZEOF(a) ((&a + 1) - &a)
int main() {
//int a;
//cin >> a;
// vector<int> testCase = {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1};
// vector<int> testCase(32, 0);
// testCase[0] = 1;
// cout << num(testCase) << endl;
// int a = INT_MIN;
// int b = -a;
// cout << a << endl;
// cout << b << endl;
int x;
int y[10];
auto p = &y; // int * int []
cout << SIZEOF(x) << endl; // 4
cout << SIZEOF(y) << endl; // 40
}
用宏实现SIZEOF
inline
条件编译
多线程调试