我是c的新手,我得到了一些其他人在Windows上编写的源代码.
尝试在linux上编译后我有错误,因为linux不支持DWORD,WORD和UINT32.我有6个文件例如.啊,Ac,Bh,Bc,Ch,Cc这些关键字都在所有文件中.
所以我在考虑两种可能的解决方案.哪个更好#define或typedef.
1)
typedef unsigned long DWORD;
typedef unsigned short WORD;
typedef unsigned int UNINT32;
Run Code Online (Sandbox Code Playgroud)
2)
#define DWORD unsigned long
#define WORD unsigned short
#define UINT32 unsigned int
Run Code Online (Sandbox Code Playgroud)
对于第二部分,我想知道我应该把这些声明放在哪里.他们应该进入头文件,还是应该进入源文件?
例如,我应该在头文件或源文件中执行类似的操作吗?
#ifdef WIN32
/* windows stuff */
#else
typedef unsigned long DWORD;
typedef unsigned short WORD;
typedef unsigned int UNINT32;
#endif
Run Code Online (Sandbox Code Playgroud)
非常感谢上述建议,
GNU emacs 23.1.1
我正在使用emacs来调试一些代码.但是,if和else块非常大,我无法在终端上显示整个代码,因为我必须向下滚动许多屏幕.并且它们中有很多是嵌套的,如果很难知道下面哪些if if阻塞.
if(something)
{
/* very big code block with nested if/elses */
}
else
{
/* very big code block with nested if/elses */
}
Run Code Online (Sandbox Code Playgroud)
我想将光标放在第一个大括号上,然后以某种方式转到此代码块结束的位置.
希望你能理解,
非常感谢任何建议,
Subversion 1.6 Ubuntu 10.4
我有一个具有以下存储库布局的项目.
proj/trunk
proj/branches/new_feature1/
proj/branches/new_feature2/
proj/tags
Run Code Online (Sandbox Code Playgroud)
但是,我想创建一个小型测试应用程序,这不是一个新功能.只是测试项目的一个小方面.我想在新分支上创建这个test_app.但是,我不想从主干到分支复制.我只是想创建一个新的空分支,以便我可以开发这个test_app.
有没有办法做到这一点?
非常感谢任何建议,
gcc 4.4.3 c89
我有一些函数初始化一些硬件并返回true或false.如果为false,那么我必须以相反的顺序取消初始化.
但是,我的代码对所有if语句看起来都很不整洁.
例如,每个函数都可以返回true或false.这是一个样本.正如您所看到的,代码看起来非常不整洁.我只是在寻找有关如何清理它以使其更易于管理且可能更糟糕的任何建议?
非常感谢任何建议,
if(init_A() == TRUE) {
if(init_B() == TRUE) {
if(init_C() == TRUE) {
if(init_D() == TRUE) {
if(init_E() == TRUE) {
/* ALL STARTED OK */
}
else {
uninit_A();
uninit_B();
uninit_C();
uninit_D();
}
}
else {
uninit_A();
uninit_B();
uninit_C();
}
}
else {
uninit_A();
uninit_B();
}
}
else {
/* Failed to initialize B */
uninit_B();
}
}
else {
/* Failed to start */
}
Run Code Online (Sandbox Code Playgroud) Android Studio 0.8.11
Run Code Online (Sandbox Code Playgroud)
你好,
我刚刚在Android上完成了一项测试,即构建一个带有实时新闻源的应用程序并显示它们.但是,由于我将所有课程都放在一个包装下,因此教师非常关键.
我只是想知道包装类的最佳实践是什么.对于我的特定测试,我在此包名下有以下类:
com.viewsys.ncon
我的课程是:
DBHelper <-- database creating and ugprading
DetailActivity <-- activity that add the NconDetailFragment
NconContract <-- properties of the database schema columns, table name
NconDetailFragment <-- detail fragment
NconListFragment <-- list fragment
NconViewPager <-- just the view pager
JsonNewsFeed <-- class that downloads and parses the json format
MainActivity <-- Main activity
NewsFeed <-- class of properties getters/setters for news feed
NewsFeedDB <-- simple array list to store all the object from the …Run Code Online (Sandbox Code Playgroud) Android Studio 1.5
Device Samsung 4.4.2
Run Code Online (Sandbox Code Playgroud)
我正在尝试将从ArrayList加载的项目动画化为recyclerview.我在单击下拉箭头时,项目应在展开时设置动画(减速),并在折叠时设置动画.但是,目前只显示列表项.
调用setAnimation的代码
@Override
public void onBindChildViewHolder(ChatChildViewHolder childViewHolder, int position, Object childListItem) {
ChatChildTitles chatChildTitles = (ChatChildTitles)childListItem;
childViewHolder.tvChildTitle.setText(chatChildTitles.getTitle());
setAnimation(childViewHolder.cvChildRooms, position);
}
Run Code Online (Sandbox Code Playgroud)
用于设置动画的代码
private void setAnimation(CardView viewToAnimate, int position) {
Animation animation = AnimationUtils.loadAnimation(mContext, android.R.anim.fade_in);
animation.setInterpolator(mContext, android.R.anim.decelerate_interpolator);
viewToAnimate.startAnimation(animation);
}
Run Code Online (Sandbox Code Playgroud)
这是一些截图:
在崩溃的状态
这是我正在使用的布局,它代表将在recyclerView中显示的行:
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView
android:id="@+id/cvChildRooms"
xmlns:card="http://schemas.android.com/apk/res-auto"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
card:cardBackgroundColor="@color/child_header_lighter_grey"
card:contentPadding="4dp"
card:cardPreventCornerOverlap="true">
<de.hdodenhof.circleimageview.CircleImageView
android:id="@+id/profile_image"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_gravity="center_vertical|start"
android:src="@drawable/photorace"/>
<TextView
android:id="@+id/tvChildTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical|center"
android:text="Coffee Latte Room"
android:fontFamily="sans-serif-light"
android:textSize="16sp"
android:textColor="@android:color/black"/>
</android.support.v7.widget.CardView>
Run Code Online (Sandbox Code Playgroud)
我有一个应该启动动画的功能.
private void …Run Code Online (Sandbox Code Playgroud) Android Studio 2.1.2
Run Code Online (Sandbox Code Playgroud)
我想测试实际调用LoginModelImp中的回调onUsernameError,onPasswordError和onSuccess.我不确定如何测试事件监听器.但是,测试失败,因为从不调用这些函数.我用mockito嘲笑他们并试图验证它们.
到目前为止这是我的代码.
演示者界面
public interface LoginPresenterContract<LoginFragmentViewContract> {
void validateCredentials();
void attachView(LoginFragmentViewContract view);
void detachView();
}
Run Code Online (Sandbox Code Playgroud)
演示者实施
public class LoginPresenterImp implements LoginPresenterContract<LoginFragmentViewContract>, LoginModelContract.OnLoginCompletedListener {
private LoginModelContract mLoginModelContract;
private LoginFragmentViewContract mLoginFragmentView;
public LoginPresenterImp(LoginModelContract loginModelContract) {
mLoginModelContract = loginModelContract;
}
/*
* LoginPresenterContact - implementation
*/
@Override
public void attachView(LoginFragmentViewContract view) {
mLoginFragmentView = view;
}
@Override
public void detachView() {
mLoginFragmentView = null;
}
@Override
public void validateCredentials() {
if(mLoginModelContract != null) {
mLoginModelContract.login(
mLoginFragmentView.getUsername(),
mLoginFragmentView.getPassword(),
LoginPresenterImp.this);
}
} …Run Code Online (Sandbox Code Playgroud) Android Studio 2.1.2
Run Code Online (Sandbox Code Playgroud)
我正在尝试测试getJsonFromResource哪些电话loadNewsFeed.我希望能够测试2个案例1,其中loadNewsFeed将返回一个空字符串,另一个将返回一些json字符串.
所以我试图模拟loadNewsFeed函数返回一个空字符串.但是,当getJsonFromResource调用具体时,它将调用实数loadNewsFeed并导致空指针异常.这是我在测试评论中尝试解释我正在做的事情:
@Test
public void shouldFailIfJSONStringIsEmpty() throws Exception {
/* Mock Context class */
Context context = mock(Context.class);
/* initialize the concrete parseNewsFeed passing in the fake context */
ParseNewsFeed parseNewsFeed = new ParseNewsFeed(context);
/* Create a mock of the parseNewsFeed so a fake call to loadNewsFeed will return an empty string */
ParseNewsFeed mockParseNewsFeed = mock(ParseNewsFeed.class);
/* Mock the events that will be verified …Run Code Online (Sandbox Code Playgroud) Android Studio 3.0 Beta2
Run Code Online (Sandbox Code Playgroud)
我正在测试使用RxJava2获取端点列表.该应用程序正常运行时工作正常.但是,当我使用espresso测试时,我尝试使用时会得到一个空指针异常subscribeOn(scheduler).对于调度程序,我使用trampoline()for subscribeOn和observeOn两个注入.
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'io.reactivex.Observable io.reactivex.Observable.subscribeOn(io.reactivex.Scheduler)' on a null object reference
Run Code Online (Sandbox Code Playgroud)
为了测试使用浓缩咖啡的RxJava2,有什么我应该做的,这对于subscribeOn和observeOn?
@Singleton
@Component(modules = {
MockNetworkModule.class,
MockAndroidModule.class,
MockExoPlayerModule.class
})
public interface TestBusbyBakingComponent extends BusbyBakingComponent {
TestRecipeListComponent add(MockRecipeListModule mockRecipeListModule);
}
Run Code Online (Sandbox Code Playgroud)
这是我的课程
public class RecipeListModelImp
implements RecipeListModelContract {
private RecipesAPI recipesAPI;
private RecipeSchedulers recipeSchedulers;
private CompositeDisposable compositeDisposable = new CompositeDisposable();
@Inject
public RecipeListModelImp(@NonNull RecipesAPI recipesAPI, @NonNull RecipeSchedulers recipeSchedulers) {
this.recipesAPI …Run Code Online (Sandbox Code Playgroud) android unit-testing nullpointerexception android-espresso android-instrumentation