相关疑难解决方法(0)

如何在iOS上获取设备制作和型号?

我想知道是否可以确定当前设备是什么类型的iPhone(例如)?我知道有可能通过这个模型
NSString *deviceType = [[UIDevice currentDevice] model];
只返回我是否有"iPhone"或"iPod",但我想知道是否有可能检测/知道我是否有iPhone 3GS与iPhone 4对比一个iPhone 4S (实际上,我真正想做的就是确定我是否有3G,因为我做的是相当图形密集的东西).

所以是的,请告诉我,谢谢!

iphone objective-c ipad ios

238
推荐指数
11
解决办法
22万
查看次数

这些破坏性变量警告有何意义?

我有这样的功能:

#include <setjmp.h>
jmp_buf buf;
void func2(int g);
extern int some_global;
void func(int x)
{
    if (setjmp(buf))
        return;
    if (some_global)
        x += 5;
    func2(x);
}
Run Code Online (Sandbox Code Playgroud)

GCC(gcc(Debian 4.4.5-8)4.4.5)发出警告:

test.c: In function ‘func’:
test.c:5: warning: argument ‘x’ might be clobbered by ‘longjmp’ or ‘vfork’ [-Wclobbered]

为什么????我的意思是,显然我不在乎是否x被破坏,因为它不可能在setjmp返回后使用.即使编译器应该知道一些非常明显的东西,因为它具有某种特殊的知识setjmp.

我的主要兴趣是找到我继承的代码库中的错误,因此,"使用这种编码风格"并不是我正在寻找的建议.然而,这里有许多奇怪的曲折.例如,如果x是局部变量而不是参数,那么GCC不会抱怨.此外,GCC不会在没有if (some_global)线的情况下抱怨.尼斯.有些事情搞砸了GCC的流量分析,或者GCC知道我不知道的事情.

所以,

  • 是否有一种简单的方法来抑制此函数的此警告,就像您可以将未使用的参数转换为(void)

  • 或者我只是在项目范围内禁止警告?

  • 或者我错过了什么?

更新:让我与您分享一个不会产生警告的略有不同的版本:

#include <setjmp.h>
jmp_buf buf;
void func2(int g);
extern int some_global;
void func(int …
Run Code Online (Sandbox Code Playgroud)

c gcc warnings longjmp

17
推荐指数
2
解决办法
6137
查看次数

检测预处理器中的ARM NEON可用性?

根据ARM ARM,__ARM_NEON__定义了可用的Neon SIMD指令.我无法让GCC提供它.

在运行Debian 8.2的BananaPi Pro开发板上可以使用霓虹灯:

$ cat /proc/cpuinfo | grep neon
Features    : swp half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt 
Run Code Online (Sandbox Code Playgroud)

我正在使用GCC 4.9:

$ gcc --version
gcc (Debian 4.9.2-10) 4.9.2
Run Code Online (Sandbox Code Playgroud)

试试GCC并-march=native:

$ g++ -march=native -dM -E - </dev/null | grep -i neon
#define __ARM_NEON_FP 4
Run Code Online (Sandbox Code Playgroud)

好的,在为Neon构建时尝试Google用于Android的内容:

$ g++ -march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=softfp -dM -E - </dev/null | grep -i neon
#define __ARM_NEON_FP 4
Run Code Online (Sandbox Code Playgroud)

也许ARMv7-a有一个硬浮点数:

$ g++ -march=armv7-a -mfloat-abi=hard …
Run Code Online (Sandbox Code Playgroud)

macros gcc arm neon c-preprocessor

5
推荐指数
1
解决办法
6118
查看次数

标签 统计

gcc ×2

arm ×1

c ×1

c-preprocessor ×1

ios ×1

ipad ×1

iphone ×1

longjmp ×1

macros ×1

neon ×1

objective-c ×1

warnings ×1