猿问

BOX2D - NULL 常量隐式转换为“bool”[-Wnull-conversion]

我正在尝试使用 android ndk 将 Box2D 编译为 android 的 64 位版本

但是我收到了很多这样的错误:

andEnginePhysicsBox2DExtension/src/main/jni\Box2D/Collision/Shapes/b2ChainShape.h:111:20:警告:NULL 常量隐式转换为“bool”[-Wnull-conversion] m_hasPrevVertex = NULL; ~ ^~~~ 假的

这就是我的 b2ChainShape.h 的内容

/*

* Copyright (c) 2006-2010 Erin Catto http://www.box2d.org

*

* This software is provided 'as-is', without any express or implied

* warranty.  In no event will the authors be held liable for any damages

* arising from the use of this software.

* Permission is granted to anyone to use this software for any purpose,

* including commercial applications, and to alter it and redistribute it

* freely, subject to the following restrictions:

* 1. The origin of this software must not be misrepresented; you must not

* claim that you wrote the original software. If you use this software

* in a product, an acknowledgment in the product documentation would be

* appreciated but is not required.

* 2. Altered source versions must be plainly marked as such, and must not be

* misrepresented as being the original software.

* 3. This notice may not be removed or altered from any source distribution.

*/


#ifndef B2_CHAIN_SHAPE_H

#define B2_CHAIN_SHAPE_H


#include <Box2D/Collision/Shapes/b2Shape.h>


class b2EdgeShape;


/// A chain shape is a free form sequence of line segments.

/// The chain has two-sided collision, so you can use inside and outside collision.

/// Therefore, you may use any winding order.

/// Since there may be many vertices, they are allocated using b2Alloc.

/// Connectivity information is used to create smooth collisions.

/// WARNING: The chain will not collide properly if there are self-intersections.


一只名叫tom的猫
浏览 93回答 1
1回答

慕田峪7331174

你在这里收到的警告NULL 常量隐式转换为 'bool' [-Wnull-conversion] m_hasPrevVertex = NULL;&nbsp;~ ^~~~ 假的告诉您,您的字段是用而不是实际的布尔值bool初始化的。NULL例如m_hasPrevVertex和m_hasNextVertex。因此,编译器尝试通过隐式将这些值设置为false并通知您这一事实来解决此问题。在这种情况下,这不是严重错误,但绝对是代码味道。(尽管,也许不同的编译器实际上会在这里抛出错误,我不确定)true您可以通过简单地将所有布尔值初始化为或 来消除这些警告false,具体取决于您的用例。
随时随地看视频慕课网APP

相关分类

Java
我要回答